2012-02-13 173 views
1

我已经在窗体上设置jQuery验证,验证当前测试的电话号码字段不是空的,是一个数字,但我希望它能够处理放置移动/区号之后的空格。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); 
     } 
    } 
+0

您能否提供一些有效/无效的输入? – hsz 2012-02-13 15:21:05

回答

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' 
); 
+0

欢迎您的帮助 – Dancer 2012-02-13 16:02:09

+0

欢迎@保罗很高兴我能帮到 – mcgrailm 2012-02-13 16:12:19

3

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

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

此正则表达式将可选地接受开始(或区域代码结束)和后区码后前3位数字将可选地接受-

+0

当然,这只适用于北美的数字。 – chris 2012-02-13 15:22:45

+0

对不起,我应该说 - 这需要为英国号码工作.. – Dancer 2012-02-13 15:25:33

+0

是的,它主要是为美国的号码,但将验证其他电话号码格式也很少或根本没有变化,因为'()'和' - '是可选的。 – ShankarSangoli 2012-02-13 15:27:06