2016-07-03 44 views
0

我試圖找到正確的正則表達式與PHP來檢查僞。它應該在4到64個字符之間,包含字母數字字符(區分大小寫)和下劃線。我試過這些:僞PHP正則表達式

preg_match ("/^([[[:alnum:]]_]){4, 64}$/", $pseudo) 
preg_match ("/^([a-zA-Z0-9_]){4, 64}$/", $pseudo) 
preg_match ("/^[[[:alnum:]]_]{4, 64}$/", $pseudo) 
preg_match ("/^[a-zA-Z0-9_]{4, 64}$/", $pseudo) 
preg_match ("/^([[[:alnum:]]_]){4,64}$/", $pseudo) 
preg_match ("/^([a-zA-Z0-9_]){4,64}$/", $pseudo) 
preg_match ("/^[[[:alnum:]]_]{4,64}$/", $pseudo) 
preg_match ("/^[a-zA-Z0-9_]{4,64}$/", $pseudo) 
preg_match ("#^([[[:alnum:]]_]){4, 64}$#", $pseudo) 
preg_match ("#^([a-zA-Z0-9_]){4, 64}$#", $pseudo) 
preg_match ("#^[[[:alnum:]]_]{4, 64}$#", $pseudo) 
preg_match ("#^[a-zA-Z0-9_]{4, 64}$#", $pseudo) 
preg_match ("#^([[[:alnum:]]_]){4,64}$#", $pseudo) 
preg_match ("#^([a-zA-Z0-9_]){4,64}$#", $pseudo) 
preg_match ("#^[[[:alnum:]]_]{4,64}$#", $pseudo) 
preg_match ("#^[a-zA-Z0-9_]{4,64}$#", $pseudo) 
... 

還有更多,但沒有人的作品,我不明白爲什麼。

編輯:我的功能就是這樣:

function pseudoIsAllowed($pseudo) { 
    $res = true; 
    echo "$pseudo\n"; 
    if (! preg_match ("/^[[[:alnum:]]_]{4,64}$/", $pseudo)) 
     $res = false; 
    if ($res) 
     echo "$pseudo is allowed.\n"; 
    else 
     echo "$pseudo is NOT allowed.\n"; 
    return $res; 
} 
+1

你是什麼意思的「沒有人的作品」? 'preg_match(「#^ [a-zA-Z0-9 _] {4,64} $#」,$ pseudo)'似乎是有效的 – malarzm

+0

也許這只是我,但你能解釋一下'pseudo'是什麼正在檢查?你能提供一些例子嗎? – SWLim

+0

例如,kndmsj不被接受,malarzm不被接受,SWLim不被接受,fgrdfgnreg不被接受... – kndmsj

回答

0

似乎/^[[:alnum:] _] {4,64} $ /作品。也許這是一個緩存問題或類似的東西。儘管如此,謝謝你。