jQuery验证电话号码

时间:2012-03-29 17:53:25

标签: jquery

我想验证电话号码: (000)111-1111 我使用此代码段,如果用户只输入数字,则可以正常使用。但如果他开始用括号,所有崩溃......我真的需要帮助...

$("input#phone1,input#phone2").keyup(function() {
        var curchr = this.value.length;
        var curval = $(this).val();
        //var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
        var numericReg = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
        if(!numericReg.test(curval)) {
            $(this).prev('label').append(tag_error + numeric_chars_only + end_tag);
            console.log($(this)+numeric_chars_only);
        }
        if (curchr == 3) {
            $("input#phone1").val("(" + curval + ")" + " ");
        } else if (curchr == 9) {
            $("input#phone1").val(curval + "-");
        }
    });

2 个答案:

答案 0 :(得分:3)

我认为这就是你所需要的:

/^\(\d{3}\) \d{3}-\d{4}$/

var x = '(000) 111-1111'.replace(/^\(\d{3}\) \d{3}-\d{4}$/, "");
alert(x);​ // alerts empty string. the regular expression worked.

Live DEMO

答案 1 :(得分:2)

我建议使用它:

^(?\ d {3})?[ - ]?\ d {3} [ - ]?\ d {4} $

它允许 (555)555-5555, 5555555555, 555 555 5555, 555-555-5555, (555)-555-5555

ETC。