1

我正在尝试验证电话号码。该网站位于美国,但客户可能来自世界各地。我正在使用 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

4 回答 4

2

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

于 2012-06-13T06:08:57.370 回答
2

http://www.phoneformat.com/

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

于 2012-06-13T06:49:34.127 回答
1

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

这里给出了另一种解决方案

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

于 2012-06-13T06:08:33.180 回答
1

首先,我推荐使用标准的 jquery 验证器插件。它具有用于验证 URL、电子邮件甚至美国电话号码等的内置模板

下一个挑战是如何扩展验证器插件以验证任何电话号码。电话号码格式因地区而异,因此您可以将验证限制为可以接受的字符。例如,只接受数字 (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}$/);

正则表达式与您接受的上述字符集相匹配。

于 2012-06-13T06:14:56.143 回答