php没有符号正则表达式允许“&”和“+”

时间:2014-03-01 21:51:38

标签: php regex

我很困惑(并且对正则表达式不好)。

我(在我的php文件中):

if ( !preg_match ("/^[a-zA-Z\s]+$/",$string)) {
            $valid = False;
}

这假设只允许字母和空格,但是当有'&'时或者允许的字符串中的“+”。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您是否检查过该字符串是否包含“+”或“&”回应它。

如果您在此网站上测试正则表达式:http://www.phpliveregex.com/ 它与+或&匹配,所以你的正则表达式是正确的,只需看看你的输入。

答案 1 :(得分:-1)

巨大的巨大幽灵般的黑暗射击在这里,但我会猜测$string = $_GET['test'];并且你正在访问如下内容:

  • http://example.com/regex.php?test=Fail+
  • http://example.com/regex.php?test=FAIL&

等等。在这种情况下,请注意+被解码为\s允许的空格。 &分隔参数,因此如果您var_dump($string),则不会显示。