if(preg_match("^[A-Za-z0-9 _]*$^",'name'))
- > 1正则表达式匹配数字,字母,空格和下划线在PHPif(preg_match("^[A-Za-z0-9 _]*$^",'name--'))
- > 1 //应该是零。在js中工作,但PHP
第一种情况是好的。但在第二种情况下,我希望它是一个零,但preg_match输出1.此正则表达式在js中工作,如我所愿。我使用的PHP代码有什么问题?
if(preg_match("^[A-Za-z0-9 _]*$^",'name'))
- > 1正则表达式匹配数字,字母,空格和下划线在PHP
if(preg_match("^[A-Za-z0-9 _]*$^",'name--'))
- > 1 //应该是零。在js中工作,但PHP
第一种情况是好的。但在第二种情况下,我希望它是一个零,但preg_match输出1.此正则表达式在js中工作,如我所愿。我使用的PHP代码有什么问题?
*
量词与类[A-Za-z0-9 _]
中的零个字符匹配,后跟输入的结尾。结果应该不令人意外;正则表达式“按预期”工作。
添加输入锚的开始是成功的预期比赛会失败:
preg_match("^\\^[A-Za-z0-9 _]*$^",'name--')
当然,因为使用^
(其中,作为分隔符,会在它可能会更好使用经典/
分隔符该开始的正则表达式的)是恕我直言,自找麻烦:
preg_match("/^[A-Za-z0-9 _]*$/",'name--')
您使用^
作为分隔符,是什么......不太好,因为它是起始锚也是。因此,你没有起始锚点,这意味着,*
完全覆盖0个字符,什么是有效的。
~^[a-z0-9 _]*$~i