1
$('#reg_submit').click(function () {
  var reg_password1 = $('#reg_password1').val();
  letters = /([a-z])([0-9])/; 
  var errorMessage =  '';

  if ( ! reg_password1.value.match(letters) )   
  {   
    errorMessage = "Password must be alphanumeric";
    $('#msg_regpass1').html(errorMessage).show();
  }
  else {
    $('#msg_regpass1').html('').hide();
  }
});

上記の jquery コードを使用して、登録ページに英数字の検証を適用しましたが、match() に関連する JavaScript エラーが発生しました。誰かが上記の問題の解決策を提案できますか、または上記のコードの英数字検証を取得するための他のコードを提供してください。その文字パターンも英数字の検証では正しく機能しません。他のパターンを提案できる人はいますか

前もって感謝します

4

4 に答える 4

7

これは私のために働いています:

var reg_password1 = 'test123#';
var letters = /^[a-zA-Z0-9]+$/;

var result = letters.test(reg_password1);

console.log(result);​

デモ

于 2012-07-18T01:20:22.787 に答える
1

あなたが求めたのは提案だけなので、ここから始めましょう: おそらく必要な正規表現は/^[a-z\d]+$/i. 既存の正規表現は、正規表現が文字列内の任意の場所に単一の小文字または数字を含む場合にのみ一致します。提案は、すべての文字がそうでなければならないと言っています。

または、正規表現にわずかなバリエーションを使用することもできます。/[^a-z\d]/iこれは、英数字以外の単一の値に一致します。次に、ロジックを微調整して、「ここで一致する場合、文字列は無効です」と言います。

match未定義であることに関しては、 JavaScript の正規表現関連のメソッドを読んでください。文字列に属するものもあれば、Regexpクラスに属するものもあります。

于 2012-07-18T01:14:47.560 に答える
0

使用する

reg_password1.match(letters)
于 2012-07-18T01:14:32.663 に答える
0

あなたのjQuery.val();メソッドは値を返すので、この行を変更してください

if(!reg_password1.value.match(letters))   

if(!reg_password1.match(letters))   

少し異なる正規表現も必要だと思います。

すべての文字が az または 0-9 (大文字と小文字を区別しない) でなければならない場合は、次を試してください。

/^[a-z0-9]*$/i

ただし、これが本当にパスワード フィールド用である場合は、ユーザーが $、#、!、@、%_、-、(、[、)、] などの記号を選択して、ユーザーがパスワードを選択できるようにする必要があります。強力なパスワード。;-)

于 2012-07-18T01:14:41.947 に答える