-3

送信されたユーザー名をチェックし、アンダースコア以外の記号が含まれている場合はそれらを拒否するPHPの記号正規表現を探していますか?数字もサポートしてほしいです。

どこから始めたらいいのかわからない…オンラインで見てみたが勝てなかった。前もって感謝します。あなたが私に正しい方向へのプッシュを与えることができれば、私はそれを大いに感謝します。

4

6 に答える 6

1
/^\w+$/

PHPの場合:

echo preg_match('/^\w+$/',$username);

正規表現を学ぶことをお勧めします。

注:アンダースコアを含めない場合は、ctype_alnum()正規表現をお勧めし、避けます。

于 2012-06-15T16:46:33.793 に答える
0

これはあなたが探している正規表現です:

/[^A-Za-z0-9_]+$/
于 2012-06-15T16:48:59.663 に答える
0
function validate($str){
   return preg_replace("/[^a-zA-Z0-9\_]/", "", $str);
}
于 2012-06-15T16:49:06.367 に答える
0

英数字のみを受け入れたい場合は、これを使用できます/ ^ [A-z0-9 _] + $ /

使用する:

$pattern_char = /^[A-z0-9_]+$/;

if(preg_match($pattern_char ,$_POST['newname'])
{
// do stuff
}

お役に立てば幸いです

于 2012-06-15T16:49:11.257 に答える
0
 ^[a-z0-9_]{3,20}$ 

これは私がJavaで行った方法です。数字を気にせず、長さも定義したことを願っています。

于 2012-06-15T16:51:12.003 に答える
0

私は言うだろう:

preg_match('/^[\pL\pN_]+$/u', $string);

どこ:

\pL  stands for any letter
\pN  stands for any digit
于 2012-06-15T16:56:07.587 に答える