正则表达式检查单/双引号和括号?

时间:2015-04-26 10:39:12

标签: php regex

我需要制作某种过滤器,不允许用户在密码中使用以下字符:

" ' ( )

现在我唯一得到的代码如下:

if(preg_match('/"/', $password)) {
    echo "illegal character found..";
}

我对Regex表示非常糟糕,感谢任何帮助,我一直在寻找答案,但似乎无法找到任何检查单引号和双引号的内容。 。

4 个答案:

答案 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

即:

['"\(\)]