送信されたユーザー名をチェックし、アンダースコア以外の記号が含まれている場合はそれらを拒否するPHPの記号正規表現を探していますか?数字もサポートしてほしいです。
どこから始めたらいいのかわからない…オンラインで見てみたが勝てなかった。前もって感謝します。あなたが私に正しい方向へのプッシュを与えることができれば、私はそれを大いに感謝します。
/^\w+$/
PHPの場合:
echo preg_match('/^\w+$/',$username);
正規表現を学ぶことをお勧めします。
注:アンダースコアを含めない場合は、ctype_alnum()
正規表現をお勧めし、避けます。
これはあなたが探している正規表現です:
/[^A-Za-z0-9_]+$/
function validate($str){
return preg_replace("/[^a-zA-Z0-9\_]/", "", $str);
}
英数字のみを受け入れたい場合は、これを使用できます/ ^ [A-z0-9 _] + $ /
使用する:
$pattern_char = /^[A-z0-9_]+$/;
if(preg_match($pattern_char ,$_POST['newname'])
{
// do stuff
}
お役に立てば幸いです
^[a-z0-9_]{3,20}$
これは私がJavaで行った方法です。数字を気にせず、長さも定義したことを願っています。
私は言うだろう:
preg_match('/^[\pL\pN_]+$/u', $string);
どこ:
\pL stands for any letter
\pN stands for any digit