这是使用jquery实现表单验证的正确代码吗?

时间:2019-04-09 14:16:52

标签: javascript jquery

我正在尝试使用以下代码验证输入文本字段,但是当我键入任何字母时,它会引发其他字符,但我希望它允许任何字母,但不能以数字开头

     <div class="input-group">
        <label for="c_name">Cashier Name
        <input id="c_name" type="text" name="cashier_name"> 
        </label>
    </div>

$(document).ready(function(){
    $( "#c_name" ).keyup(function() {

        var data= /^[A-Za-z]+$/;
    if ($("#c_name").val() == data) {
        $(this).addClass("cash");
        $(this).removeClass("cashs");
    }else{
     $(this).addClass("cashs");
     $(this).removeClass("cash");
    }

});

}); ```

I expect it to add a class cash if it begins with a letter.

1 个答案:

答案 0 :(得分:1)

data是RexExp。要检查字符串是否与正则表达式匹配,应使用RegExp.prototype.test

if (data.test($("#c_name").val()))

$(document).ready(function(){
    $( "#c_name" ).keyup(function() {
        var regex = /^[A-Za-z]+$/;
        if (regex.test($("#c_name").val())) {
            $(this).addClass("cash");
            $(this).removeClass("cashs");
        } else {
            $(this).addClass("cashs");
            $(this).removeClass("cash");
        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="input-group">
        <label for="c_name">Cashier Name
        <input id="c_name" type="text" name="cashier_name"> 
        </label>
    </div>