php preg_match使用破折号

时间:2014-06-08 17:12:58

标签: php preg-match

我有一个搜索表单,其中有一个preg_match来验证文本,但是当我用短划线输入内容时,我的问题出现了。

 if(preg_match("/^[a-zA-Z -]+$/", $_POST['inschrijvingnmr']) == 0){

允许的格式可以是以下任何一种情况。

AAAAAA
aaaaaa
A-AAAAA
AA-AAAA

我只能使用前两个搜索,但是当我尝试搜索第3和第4类型时,我只是收到“其他”消息说要输入有效的搜索查询。

1 个答案:

答案 0 :(得分:3)

连字符放在组的开头:

/^[-a-zA-Z ]+$/

您正在检查正则表达式是否匹配(preg_match如果没有匹配则返回0。)

使用if (preg_match( ... ))检查正则表达式是否匹配,或使用if (preg_match( ... ) === 0)检查不匹配。