1

テキストボックスに小文字以外の文字を入力するときにクラスを変更しようとしています。しかし、これを引き起こしているいくつかの愚かな小さなことがあると確信しています、それは「yo!」のconsole.logを表示していません。これがjavascriptです:

$(function(){
    $("input[name='name']").keyup(function(){
        var str = $(this).val();
        var badChars = new RegExp("[^a-z]");
        if (str.indexOf(badChars)!=-1){
            console.log("yo!");
            $(this).removeClass("good");
            $(this).addClass("error");
        }
    });
});

私は何を台無しにしていますか?

4

1 に答える 1

2
$(function() {
    // Don't need to create new RegExp object on each keyup event.
    // Just create it once:
    var badChars = new RegExp("[^a-z]");

    $("input[name='name']").keyup(function() {
        // Use RegExp.test() method to check 
        // is string matches the regular expression.
        if (badChars.test(this.value)) {
            console.log("yo!");
            $(this).removeClass("good")
                   .addClass("error");
        }
    });
});

RegExp.test()方法

于 2012-10-03T22:58:52.933 に答える