0

だから私は私のphpの旅を続けています。現在、登録フォームを作成し、ユーザーが要求したユーザー名を検証しています。これは私がこれまでに持っているものです:

if (preg_match("([a-z 0-9](?=.{3})(?!.{10}))", $user_Name))

「RegExr」を使用してこの一致を作成しましたが、機能していないようです。大文字を追加しても、それは有効であると言われました

つもりだった:

  • 0 ~ 9 の数字
  • 大文字なし
  • 特別な記号は一切ありません
  • 6文字以上
  • 最大10文字
4

2 に答える 2

9

あなたのルールによれば、これはうまくいくはずです:

if (preg_match('/^[a-z0-9]{6,10}$/', $user_name))
于 2012-12-30T03:49:14.143 に答える
-1

約 3 時間の調査とトラブルシューティングの後、正しい解決策を見つけました。順序が非常に重要であることがわかりました。

(?=.{5}) <=== 文字列は 5 以上でなければなりません

(?!.{11}) <=== 文字列は 10 文字以内にする必要があります

^[az 0 -9]+$ <=== は、一般的な文字と 0 ~ 9 の数字のみを含む任意の文字列に一致します

if (!preg_match('/(?=.{5})(?!.{11})^[a-z 0 -9]+$/', $user_Name)) {
            echo 'username is not valid</br>';
            echo $user_Name;
        }
        else {
            echo 'username is valid</br>';
            echo $user_Name;
        }
于 2012-12-30T11:11:30.780 に答える