1

javascript を使用してテキスト フィールド (名) を検証したい。テキストのみを含める必要があります。特殊文字や数字は使用できません。名前は単なる名前であるため、1 つの単語のみを含める必要があります。(場所がない)

許可された:

  • ジョン
  • ジョン

禁止されている

  • ジョン・ケネディ。
  • ジョン・ケネディ。
  • ジョン123。
  • 123ジョン。

私はこれを試しましたが、うまくいきません。

if( !validateName($fname)) 
    {
     alert("name invalid");
    }   


function validateName($name) {
var nameReg = /^A-Za-z*/;
if( !nameReg.test( $name ) ) {
    return false;
 } else {
   return true;
  }
}

編集: 試しました

var nameReg = /^[A-Za-z]*/;

しかし、john123 または 123john を入力してもアラート ボックスは表示されません。

4

2 に答える 2

2

nameRegである必要があります/^[a-z]+$/i(またはいくつかのバリエーション)。^は、文字列の先頭と末尾に一致$します。これは、「大文字と小文字を区別しない、文字列の最初から最後までの 1 つ以上の az 文字」です。に変更できます+*、文字列が空になる可能性があります。

http://jsfiddle.net/ExplosionPIlls/pwYV3/1/

于 2013-02-24T17:36:48.107 に答える
0

文字クラスを使用します。

var nameReg = /^[A-Za-z]*/;

含む[](文字クラスにする) なしでは、リテラルを指定していますA-Za-z

アップデート:

$正規表現の末尾にa を追加します。

var nameReg = /^[A-Za-z]*$/;

それ以外の場合は、john123正規表現が一致しているため有効を返し、文字列johnの一部を無視でき123ます。

実際のデモ: http://jsfiddle.net/GNVck/

于 2013-02-24T17:29:24.297 に答える