0

最小長 = 4、最大長 = 15 で、アルファベットや数字だけではなく、英数字の値のみを許可する正規表現パターンが必要です。

を使ってみ/^[a-zA-Z0-9]{4,15}$/たのですが、このパターンもアルファベットのみ、数字のみ許可しています。

私を助けてください

4

3 に答える 3

2

これでうまくいくはずです:

^(?=^.{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]*

上記と同じですが、今回だけ文字列のどこかに文字がなければなりません。

于 2013-05-29T08:52:46.963 に答える
0

数字と文字を探すために二重先読みを行うことができます。数字と文字が見つかると、一致が続行されます。そうでない場合は続行されません。

正規表現:/^(?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9]{4,15}$/

于 2013-05-29T08:53:02.263 に答える
0

英数字と長さのテストにオリジナルを使用してから、文字列の任意の場所で数字の後に英字が続くか、その逆かをテストして、文字列に英字と数字が含まれていることを確認します。

   /^[a-z\d]{4,15}$/i.test (s) && /\d[a-z]|[a-z]\d/i.test (s);
于 2013-05-29T09:07:18.733 に答える