最小長 = 4、最大長 = 15 で、アルファベットや数字だけではなく、英数字の値のみを許可する正規表現パターンが必要です。
を使ってみ/^[a-zA-Z0-9]{4,15}$/
たのですが、このパターンもアルファベットのみ、数字のみ許可しています。
私を助けてください
最小長 = 4、最大長 = 15 で、アルファベットや数字だけではなく、英数字の値のみを許可する正規表現パターンが必要です。
を使ってみ/^[a-zA-Z0-9]{4,15}$/
たのですが、このパターンもアルファベットのみ、数字のみ許可しています。
私を助けてください
これでうまくいくはずです:
^(?=^.{4,15}$)([a-zA-Z]+[0-9][a-zA-Z0-9]*|[0-9]+[a-zA-Z][a-zA-Z0-9]*)$
ここで実際の例を参照してください: http://regexr.com?351ia
説明: (更新: 長さチェック付き)
最初に、正の先読み(?=^.{4,15}$)
は文字列の長さをチェックします。
文字列が文字で始まる場合、正規表現のこの部分を使用して評価されます。
[a-zA-Z]+[0-9][a-zA-Z0-9]*
[a-zA-Z]+
文字列が少なくとも 1 文字で始まることを意味します[0-9]
その後、ある時点で数が存在する必要があります[a-zA-Z0-9]*
その後に任意の数の数字または文字が続く文字列が数字で始まる場合、正規表現の 2 番目の部分が使用されます。
[0-9]+[a-zA-Z][a-zA-Z0-9]*
上記と同じですが、今回だけ文字列のどこかに文字がなければなりません。
数字と文字を探すために二重先読みを行うことができます。数字と文字が見つかると、一致が続行されます。そうでない場合は続行されません。
正規表現:/^(?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9]{4,15}$/
英数字と長さのテストにオリジナルを使用してから、文字列の任意の場所で数字の後に英字が続くか、その逆かをテストして、文字列に英字と数字が含まれていることを確認します。
/^[a-z\d]{4,15}$/i.test (s) && /\d[a-z]|[a-z]\d/i.test (s);