我正在使用这个正则表达式来确保名称只能包含字母,撇号或连字符。
Validator::extend('people_names', function($attribute, $value, $parameters, $validator) {
return preg_match("^[a-zA-Z-'\s]+$^", $value);
当我使用此tool来检查正则表达式是否正确时,它会显示正确,但在我的表单中,当我测试以数字或任何其他字符开头的输入时,例如123name
或{{ 1}}它通过而不应该通过。输入字母然后是#$#$name
之类的数字将被拒绝。
答案 0 :(得分:2)
PHP preg_
函数需要以/^
开头,以$/
结尾。
试试这个:
preg_match("/^[a-zA-Z-'\s]+$/", $value);
答案 1 :(得分:1)
在你的正则表达式provide
中,你只是通过最后使用^[a-zA-Z-'\s]+$^
检查字符串是否以字母结尾,但是开头的$
在这里用作正则表达式分隔符,因为它也在最后。
我建议使用其他字符串分隔符,例如^
或#
:
/
应该有用。