php无符号正则表达式,允许“&”和“+”

php无符号正则表达式,允许“&”和“+”,php,regex,Php,Regex,我很困惑,不擅长正则表达式 我的php文件中有: if ( !preg_match ("/^[a-zA-Z\s]+$/",$string)) { $valid = False; } 假设它只允许字母和空格,但是当字符串中有“&”或“+”时,它允许这样做 有人能帮我吗?巨大的胡蒙戈在黑暗中拍摄,但我猜$string=$\u GET['test'];您可以访问以下内容: http://example.com/regex.php?test=Fail+ http://examp

我很困惑,不擅长正则表达式

我的php文件中有:

if ( !preg_match ("/^[a-zA-Z\s]+$/",$string)) {
            $valid = False;
}
假设它只允许字母和空格,但是当字符串中有“&”或“+”时,它允许这样做


有人能帮我吗?

巨大的胡蒙戈在黑暗中拍摄,但我猜$string=$\u GET['test'];您可以访问以下内容:

http://example.com/regex.php?test=Fail+ http://example.com/regex.php?test=FAIL&
等等。在这种情况下,请记住+被解码为\s允许的空格。和&分隔参数,因此如果您使用var_dump$string,则不会显示。

是否已通过回显检查字符串是否实际包含“+”或“&”

如果在此站点上测试正则表达式:
它不匹配+或&,因此您的正则表达式是正确的,请查看您的输入。

否则$valid=true?$string来自哪里?请注意\s不仅仅是一个空格,它是任何空格字符。除非您试图跨多行进行匹配,否则您可能希望使用^[a-zA-Z]+$,我认为这是因为这条标语$\u POST['interest\u 1']--我对PHP还是新手