Jquery表单验证 - 电话号码

时间:2012-02-13 15:18:22

标签: jquery regex validation

我已经在表单上设置了jQuery验证,验证当前测试的是电话号码字段不是空的并且是一个数字,但是我希望它能够处理用户在移动/区域之后放置空格代码。

任何人都可以建议我需要做些什么来实现这个目标吗?

这是我目前的代码 -

if((phone.length == 0) || (names == 'Please Enter Your Contact Number (no space)')){  
        var error = true;  
        $('.error').fadeIn(500);  
        $('.pStar').fadeIn(500);

    }else{  
        var value = $('#phone').val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
        var intRegex = /^\d+$/;
        if(!intRegex.test(value)) {
             var error = true;  
             $('.error').fadeIn(500);  
            $('.pStar').fadeIn(500);

        } else{
        $('.pStar').fadeOut(500);
        }
    }   

2 个答案:

答案 0 :(得分:5)

我强烈建议使用jQuery validate而不是重新发明轮子

使用jquery验证快速谷歌搜索英国号码已经启用了

filters

看起来像这样

jQuery.validator.addMethod('phoneUK', function(phone_number, element) {
  return this.optional(element) || phone_number.length > 9 &&
  phone_number.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/);
  }, 'Please specify a valid phone number'
);

答案 1 :(得分:3)

使用此正则表达式验证电话号码。

var pattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;  
if(!$('#phone').val().test(elementValue)){
    //Invalid number
}  

此正则表达式可选择接受区号开始(或结束),并可选择在区号后的前3位数后接受-