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



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

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

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
    }
}

我认为您的问题是:

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

应为:

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

可能还有另一个问题,但我马上就想到了。

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');    
            }
        }

最新更新