正则表达式为人们命名PHP

时间:2016-09-15 08:27:59

标签: php regex laravel validation

我正在使用这个正则表达式来确保名称只能包含字母,撇号或连字符。

Validator::extend('people_names', function($attribute, $value, $parameters, $validator) {
        return preg_match("^[a-zA-Z-'\s]+$^", $value);

当我使用此tool来检查正则表达式是否正确时,它会显示正确,但在我的表单中,当我测试以数字或任何其他字符开头的输入时,例如123name或{{ 1}}它通过而不应该通过。输入字母然后是#$#$name之类的数字将被拒绝。

2 个答案:

答案 0 :(得分:2)

PHP preg_函数需要以/^开头,以$/结尾。

试试这个:

preg_match("/^[a-zA-Z-'\s]+$/", $value);

答案 1 :(得分:1)

在你的正则表达式provide中,你只是通过最后使用^[a-zA-Z-'\s]+$^检查字符串是否以字母结尾,但是开头的$在这里用作正则表达式分隔符,因为它也在最后。

我建议使用其他字符串分隔符,例如^#

/应该有用。