Следующая инструкция regex if не работает. Я хочу убедиться, что пользователь входит между 2-3 буквами, а затем между 7 - 11 номерами. в противном случае верните сообщение об ошибке.только разрешить форму для проверки правильности регулярного выражения
add_filter('gform_field_validation_1_44', 'tax_id_verif', 10, 4);
function tax_id_verif ($result, $value, $form, $field)
{$tax_regex = "/^[a-zA-Z]{2,3}\s?+[1-9]{7,12}$/g";
$tax_match = preg_match($tax_regex, $value, $match);
if ($result != $tax_match) {
$result['is_valid'] = false;
$result['message'] = 'Please enter a correct tax ID';
}
return $result;
}
Модификатор 'g' не поддерживается. Кроме того, '\ s? +' Соответствует 1 или 0 пробелам, возможно, вам просто нужно '\ s *'. Кроме того, '[1-9]' соответствует только цифрам от «1» до «9», он не будет соответствовать «0». Попробуйте '$ tax_regex ="/^ [a-zA-Z] {2,3} \ s * [0-9] {7,11} $/"' –
'[1-9]' не будет соответствовать нулям , Я думаю, вы имеете в виду '[0-9]'. –
[1-9] {7,12} будет совпадать между 7 и 11 номерами (кроме 0), возможно, вы хотели: '[0-9] {7,11}' (кстати, \ d - это то же самое, что и [0-9]) – dquijada