正直なところ、私は実際には正規表現を取得していません。だから私はここでどこが間違っているのか完全に気づいていません。
英数字のみを受け入れる正規表現を探しています(アンダースコアはユーザー名用です)。この辺りを検索したところ、試した正規表現の例が多数見つかりましたが、そのうちの1つは機能していません。
なかでも、このあたりの回答から得たものが多いので、やってみました
^[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
}
など...特殊文字を受け入れるたびに(&、$、^、および%を試しました)。
私はここで何を間違っているのですか?正規表現の形式ですか?それは私がそれをチェックするように頼んでいる方法ですか?
また、特殊文字が見つかった場合に取得するリターンタイプは正確には何ですか?(つまり、受け入れたくないもの)