只允许表单验证正则表达式是否为真

时间:2017-02-16 10:03:57

标签: php regex preg-match gravity-forms-plugin

以下正则表达式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;
    }

1 个答案:

答案 0 :(得分:0)

PHP正则表达式不支持g修饰符。此外,\s?+匹配1或0个空格,您只能使用\s*。此外,[1-9]仅匹配19的数字,它与0不匹配。如果您需要匹配7到1个 1 数字,请使用{7,11}而不是{7,12}

使用

$tax_regex = "/^[a-zA-Z]{2,3}\s*[0-9]{7,11}$/";

如果字母和数字之间不应有空格,请删除\s*