没有验证插件的jQuery电话号码格式检查

时间:2014-09-03 19:19:16

标签: jquery regex validation format phone-number

有人知道如何在不使用验证插件的情况下使用简单的美国格式电话号码检查工具吗?

到目前为止,我有类似的东西,但我似乎无法让它发挥作用。

if($(this).hasClass('phoneNum')) {
    var phone_number = $(this.value).replace(/\s+/g, ''); 
    if(phone_number.length > 9 && phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/)) {
        //..........do stuff
    }
}

2 个答案:

答案 0 :(得分:1)

我认为你的问题是:

var phone_number = $(this.value).replace(/\s+/g, '');

应该是:

var phone_number = $(this).val().replace(/\s+/g, '');

可能还有另一个问题,但这会马上突然出现。

答案 1 :(得分:0)

MadTurki你是对的但j08691感谢你指导我更好地回答这个问题的帖子。我最终选择了以下内容并且效果很好!

if($(this).hasClass('phoneNum')){
            var error = 1;
            var hasError = false;
            var $this = $(this);
            var regex1 = /^([2-9]{1}\d{2})([2-9]{1}\d{2})\d{4}$/;
            phone = $(this).val();
            phone = phone.replace(/[^0-9]/g,'');        
            if(!regex1.test(phone)){
                isValid = false;
                $this.css('background-color','#FF7575');
            }   
            else{
                area = phone.substring(0,3);
                prefix = phone.substring(3,6);
                line = phone.substring(6);
                $this.val('(' + area + ') ' + prefix + '-' + line);
                $this.css('background-color','#A7E9A7');    
            }
        }