我有一个搜索表单,其中有一个preg_match来验证文本,但是当我用短划线输入内容时,我的问题出现了。
if(preg_match("/^[a-zA-Z -]+$/", $_POST['inschrijvingnmr']) == 0){
允许的格式可以是以下任何一种情况。
AAAAAA
aaaaaa
A-AAAAA
AA-AAAA
我只能使用前两个搜索,但是当我尝试搜索第3和第4类型时,我只是收到“其他”消息说要输入有效的搜索查询。
答案 0 :(得分:3)
将连字符放在组的开头:
/^[-a-zA-Z ]+$/
您正在检查正则表达式是否不匹配(preg_match
如果没有匹配则返回0
。)
使用if (preg_match( ... ))
检查正则表达式是否匹配,或使用if (preg_match( ... ) === 0)
检查不匹配。