2016-07-03 14 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) 
... 

さらに多くの、しかし誰も作品と私はなぜ見つけることができません。

EDIT:My機能はそのようなものです:

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

おそらくそれは私のものですが、チェックしている?あなたはそれのいくつかの例も教えてくれますか? – SWLim

+0

たとえば、kndmsjは受け入れられず、malarzmは受け入れられず、SWLimは受け入れられず、fgrdfgnregは受け入れられません... – kndmsj

答えて

0

それは思わ/^[[:alnum:] _]と{4,64} $ /作品。たぶんそれはキャッシュの問題かそのようなものでした。しかし、ありがとうございました。