说实话,我并不真得到 RegEx。所以我完全没有意识到我要去哪里错了。我在做这个正则表达式的错误是什么?
我在查找接受字母数字字符的正则表达式只有(和下划线,它是用户名)。我在这里搜索过,发现了很多我尝试过的RegExes例子,但其中没有一个能够工作。
其中,我已经大多是从得到的答案在这里,我已经试过
^[a-zA-Z0-9_]*$
/[^a-z_\-0-9]/i
/^\w+$/
来匹配这些,我已经试过(与每个正则表达式的)
if(preg_match("/^\w+$/", $username)) {
//don't accept
}
和
if(!preg_match("/^\w+$/", $username)) {
//don't accept
}
和
if(preg_match("/^\w+$/", $username) == 1) {
//don't accept
}
和
if(preg_match("/^\w+$/", $username) == 0) {
//don't accept
}
等等 每个和它的接受特殊字符,每一次(我试过&,$,^和%)。
我究竟在做什么错在这里?它是RegEx的格式吗?这是我要求它检查的吗?
此外,如果发现特殊字符,我得到的返回类型究竟是什么? (即,一个我不希望接受)
您可能想要'/^[[:alnum:] _] + $ /'。 –
试试这个'if(preg_match('/ [^ \\ w] /',$ username)== 1)'。为了方便测试,请看[this](http://www.functions-online.com/preg_match.html) – atomman
您所有的正则表达式模式都是正确的。您的使用或处理逻辑错误。可能在其他地方, – mario