老实说,我真的不懂RegEx。所以我完全不知道我在哪里出错了。
我正在寻找一个只接受字母数字字符的正则表达式(和下划线,它用于用户名)。我在这里搜索过,发现了许多我尝试过的示例 RegEx,但没有一个有效。
其中,我主要是从这里的答案中得到的,我试过了
^[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
}
等等...每次它都接受特殊字符(我尝试过 &、$、^ 和 %)。
我在这里到底做错了什么?是正则表达式的格式吗?这是我要求它检查的方式吗?
另外,如果找到特殊字符,我得到的返回类型到底是什么?(即我不想接受的)