【问题标题】:Jquery form validation - telephone numberJquery表单验证-电话号码
【发布时间】:2012-03-04 23:56:52
【问题描述】:

我已经在表单上设置了 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);
        }
    }   

【问题讨论】:

  • 您能提供一些有效/无效的输入吗?

标签: jquery regex validation


【解决方案1】:

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

使用 jquery validate 快速在 Google 上搜索英国号码

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,它主要用于美国号码,但也会验证其他电话号码格式,几乎没有变化,因为 ()- 是可选的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多