說實話,我並不真得到 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