使用jquery验证电话号码

时间:2012-06-13 06:01:16

标签: jquery validation

我正在尝试验证电话号码。该网站以美国为基础,但客户可以来自世界各地。我正在使用jQuery来验证输入。我非常感谢提供验证的提示。感谢。

<input 
     name="phone"  
     type="text" 
     id="phone" 
     minlength="7"
     maxlength="15" 
     style="
               font-family: Verdana;
               color:#FFFFFF;
               font-size: 13px;
               background-color: #0E0E0F;
               border: 1px solid #740086;
               width:385px;
               margin-bottom:10px;
           "
     size="385"
     value="Phone #"
     onfocus="if(this.value==this.defaultValue)this.value='';" 
     onblur="if(this.value=='')this.value=this.defaultValue;"/>

4 个答案:

答案 0 :(得分:2)

用户JQuery验证引擎.. easy.ecool和我见过的最干净的验证框架.. http://www.position-relative.net/creation/formValidator/ 这个插件已经处理了电话号码验证。如果这还不够,那么你可以添加自己的自定义正则表达式来执行验证。

答案 1 :(得分:2)

http://www.phoneformat.com/

您可以使用此库进行验证。它还为您格式化数字。真是令人印象深刻的图书馆

答案 2 :(得分:1)

电话号码因地区而异。解决这个问题最简单的方法就是验证空虚。但是,如果您确实需要验证电话号码,则必须考虑区号,区域并尝试要求用户不要输入任何特殊字符。例如,如果我想验证来自布宜诺斯艾利斯的手机号码,阿根廷我会使用至少2个输入字段:一个用于区号,一个用于实际号码。

另一种解决方案是here

另一个:询问用户国家代码(或从下拉列表中选择),然后是区号(可能是另一个下拉列表,虽然动态设置一个会很好,考虑到国家已选择),然后是实际数字的另一个输入。不要尝试验证号码本身,而是要求用户不要输入任何特殊的字符或空格,并检查是否输入了数字。 但是,我认为这不值得努力。如果您真的需要拥有用户的真实号码,您应该让某人拨打该号码并进行验证

答案 3 :(得分:1)

首先,我建议使用标准 jquery validator plugin。它内置了模板,用于验证网址,电子邮件甚至US phone numbers等等。

下一个挑战是如何扩展验证器插件以验证任何电话号码。电话号码格式因地域而异,因此您可以将验证限制为可以接受的字符。例如,只接受数字(0-9),括号,短划线等。

然后,您可以将插件扩展为:

jQuery.validator.addMethod("phoneAny", function(phone_number, element) {
phone_number = phone_number.replace(/\s+/g, ""); 
return this.optional(element) || phone_number.length > 9 &&
    phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);

正则表达式与前面提到的字符集匹配。