2012-07-09 160 views
1

我已经设置了使用jQuery的HTML表单的验证,我正在寻找一些关于电话号码验证的帮助,我一直在网上搜索,这里是我想出来的,但它仍然不工作!我有电子邮件和名称输入验证,但无法弄清楚如何正确实施电话号码验证,因为我提交时仍然接受信件?我需要输入只接受最多15个数字,如果需要,还可以在开始时接受+号?使用jQuery的电话号码验证

我使用的regEx是:/^[a-zA-Z0-9._-][email protected][a-a-A-Z0-9.-]+.[a-zA-Z]{2,4 } $ /和我知道这是不正确的,但我甚至不能让这个工作?

任何关于如何解决这个问题的意见非常感谢!

$('#submit_second').click(function(){ 
    //remove classes 
    $('#second_step input').removeClass('error').removeClass('valid'); 

    var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
var phonePattern = /^[0-9]{3}\-[0-9]{7}$/ ; 
    var fields = $('#second_step input[type=text]'); 
    var error = 0; 
    fields.each(function(){ 
     var value = $(this).val(); 
     if(value.length<1 || value==field_values[$(this).attr('id')] || ($(this).attr('id')=='email' && !emailPattern.test(value)) ) { 
      $(this).addClass('error'); 
      $(this).effect("shake", { times:3 }, 50); 

      error++; 
     } else { 
      $(this).addClass('valid'); 
     } 
    if(value.length<1 || value==field_values[$(this).attr('id')] || ($(this).attr('id')=='phone' && !phonePattern.test(value)) ) { 
      $(this).addClass('error'); 
      $(this).effect("shake", { times:3 }, 50); 

      error++; 
     } else { 
      $(this).addClass('valid'); 
     } 


}); 

回答

2

这应做到:

/^\+?[0-9]{0,15}$/ 

这件事匹配15个号码,可选前缀+

+0

嗨感谢您的!林不知道它只是regEx多数民众赞成不起作用,我认为我的代码也是错误的?验证电话号码的代码是否有误?我没有收到任何错误警告,但是当我将它提交给服务器时,它仍然接受字母和数字,但没有给我警告? – DannyW86 2012-07-09 12:31:21

+0

我的代码实际上工作确定我只是有一个命名错误,我的提交按钮!谢谢 :) – DannyW86 2012-07-09 13:31:04