3

少なくとも 1 つのアルファベット (AZ、az) とオプションで数字 (0-9) を含める必要があることを検証する正規表現が必要です。

有効な名前:

  • ああああ
  • aaaa1
  • それで
  • ジョン P. の例

無効な名前

  • 1111
  • @@@@

これまでに試した正規表現

[a-zA-Z0-9\.\'\-_\s]{1,20}  

function validateFirstName(a) {
  if (/[0-9]/.test(a) && /[a-zA-Z]/.test(a)) {
      return false;
  } else {
      return true;
  }
}

しかし、どちらも機能しません。

この点で誰でも助けてもらえますか?

4

5 に答える 5

5

試す:

^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$

説明する:

  • 中央の角かっこ (「サンドイッチの肉」) 内のビットは、アルファベット文字と一致します。後の + は、これらの少なくとも 1 つがあることを確認します。
  • 角かっこで囲まれた他の 2 つの表現 (「サンドイッチのパン」) は、英数字に一致します。それぞれの後の * は、これらの任意の数を許可します。
  • 全体を囲む ^ と $ は、テキストの一部だけではなく、テキスト全体が表示されるようにします。
于 2013-02-08T13:24:36.563 に答える
1

[a-zA-Z]+.*|.*[a-zA-Z]+|.*[a-zA-Z]+.*あなたが提供した例と一致します。

于 2013-02-08T13:19:20.253 に答える
1

したがって、任意の数の az char または数値が必要であり、次に少なくとも 1 つの az char と任意の数の az char または数値が再び必要です。

^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$

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

于 2013-02-08T13:22:30.213 に答える
1

文字列にアルファベット文字が含まれているかどうかのみを確認したい場合は、次のようにします。

/[a-z]/i.test(str)

文字列を少なくとも 1 つの英字を含む英数字のみで構成する必要がある場合:

/^(?=.*[a-z])[a-z\d]+$/i.test(str)

また

/[a-z]/i.test(str) && /^[a-z\d]+$/i.test(str)

それ以外の場合は、[a-zA-Z0-9.'\-_\s]{1,20}実際には見栄えがしますが、文字列の最初と最後に固定する必要があります。

/^[a-zA-Z0-9.'\-_\s]{1,20}$/.test(str)

アルファベット文字を強制したい場合は、前の例と同様に、先読みを含めるか、追加のテストを行う必要があります。

于 2013-02-08T13:22:32.507 に答える