我正在尝试验证电话号码。该网站以美国为基础,但客户可以来自世界各地。我正在使用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;"/>
答案 0 :(得分:2)
用户JQuery验证引擎.. easy.ecool和我见过的最干净的验证框架.. http://www.position-relative.net/creation/formValidator/
这个插件已经处理了电话号码验证。如果这还不够,那么你可以添加自己的自定义正则表达式来执行验证。
答案 1 :(得分:2)
您可以使用此库进行验证。它还为您格式化数字。真是令人印象深刻的图书馆
答案 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}$/);
正则表达式与前面提到的字符集匹配。