我需要制作某种过滤器,不允许用户在密码中使用以下字符:
" ' ( )
现在我唯一得到的代码如下:
if(preg_match('/"/', $password)) {
echo "illegal character found..";
}
我对Regex表示非常糟糕,感谢任何帮助,我一直在寻找答案,但似乎无法找到任何检查单引号和双引号的内容。 。
答案 0 :(得分:0)
试试这个:
preg_match('~[\'"\(\)]~', $password); // return true when any of '"() is in password.
整个代码应该是:
$password = '...';
if (preg_match('~[\'"\(\)]~', $password)) {
echo 'password contains bad character';
} else {
echo 'OK';
}
答案 1 :(得分:0)
使用以下规则:
if(preg_match("/[\(\)\'\"]/", $text) !== FALSE)
{
// show error
}
通过显示非法使用的字符,您可以更有创意:
$result = NULL;
if(preg_match("/([\(\)\'\"])/", $text, $result) !== FALSE)
{
echo "You have used illegal character " . $result[0] . "in your text";
}
注意我已经稍微更改了RegEx规则。
答案 2 :(得分:0)
这应该有用;
["'\/\(\)]
您想要捕获任何paranthesis或斜杠或引号,因此您需要使用字符类。
字符类由[]
定义,它基本上表示这些括号内的任何字符。
此外,parantheses和正斜杠在正则表达式中具有特殊含义,因此您应该使用\
答案 3 :(得分:0)
您可以使用以下内容匹配
abateri.txt.txt
即:
['"\(\)]