以下正则表达式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;
}
答案 0 :(得分:0)
PHP正则表达式不支持g
修饰符。此外,\s?+
匹配1或0个空格,您只能使用\s*
。此外,[1-9]
仅匹配1
到9
的数字,它与0
不匹配。如果您需要匹配7到1个 1 数字,请使用{7,11}
而不是{7,12}
。
使用
$tax_regex = "/^[a-zA-Z]{2,3}\s*[0-9]{7,11}$/";
如果字母和数字之间不应有空格,请删除\s*
。