0

Jquery を使用して 3 つの条件でフォーム要素を検証しようとしています。

これは私のコードです -

var valid = true,
errorMessage = "";

if ($('#name').val()) {
    if ($('#name').val().length > 60 || $('#name').val().length < 3)  { 
        errorMessage  = "Length of Your Name must be between 3 and 60.\n";
        valid = false;
    } else {
        var rege = /^[a-z]([a-z_])+$/i;
        if(!rege.test(!$('#name').val())){ 
               errorMessage  += "Please enter Valid name.\n";
               valid = false;
        }
    }
} else {
    errorMessage  += "please enter your name \n";
    valid = false;   
}

名前フィールドが空の場合は、「名前を入力してください」と表示されます。

フィールドが空ではなく、その長さが 3 未満または 60 を超える場合は、「名前の長さは 3 から 60 の間でなければなりません」と表示されます。

最後に、ユーザー名が有効かどうかを確認する必要があります。有効でない場合は、「有効な名前を入力してください」と表示されます。

私の問題は、有効なユーザー名を入力すると、常にこのメッセージが表示されることです-「有効な名前を入力してください.」

私が行ったどこが間違っているか誰にもわかりますか?

注 :私の名前には大文字と小文字のみを使用できます。

フィドル

どんなアイデアでも大歓迎です。ありがとうございました。

4

2 に答える 2

1

!不要なインの例外を除いて、私には問題ないように見えます

        var rege = /^[a-z]([a-z\s])+$/i;
        if(!rege.test($('#name').val())){ // ! before $('#name').val() not required
            errorMessage  += "Please enter Valid name.\n";
            valid = false;
        }
于 2013-08-13T16:45:45.643 に答える
0

正規表現を次のように変更します。

var rege = /^[a-zA-Z]([a-zA-Z])+$/i;
于 2013-08-13T16:46:08.010 に答える