繁体   English   中英

使用JavaScript和.NET进行电话号码验证?

[英]Phone number validation using JavaScript with .NET?

如何在ASP.NET中使用JavaScript验证电话号码?

function validatePhoneNumber(elementValue){  
    var phoneNumberPattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;  
    return phoneNumberPattern.test(elementValue);  
}

像这样使用它:

if (validatePhoneNumber('123-456-7890'))
{
    // do something
}

验证电话号码是一个难题。

本质上,您定义了一个与有效电话号码的模式匹配的正则表达式。 电话号码的约定是高度本地化的,并且在不了解用户位置的情况下,很难一概而论。 我的一般规则是:“接受用户提供的内容,除数字外的所有内容,然后仅存储并格式化,以便显示。即使这样也不总是很有效,因为有人可能会给您提供一个非常有效的数字,例如555-1234 x345 ,因为只能通过PBX扩展名访问它们,它们省略了区号,并且如果去除了非数字,则剩下5551234345,其格式为555-123-4335。 。

  • NANP( 北美编号计划 )电话号码包含一个3位数字的区号(可选),一个3位数字的中央局(CO / exchange)号码和4位订户号,以及可选的国家/地区代码,访问代码等。常规上写为((并省略了国家代码和访问代码)):(AAA)BBB-CCCC,AAA-BBB-CCCC,AAA.BBB.CCCC等。更正式的是,NANP编号(1区,包括美国)及其海外地区(坎达达和大多数加勒比海国家)应写为+1:AAA-BBB-CCCC。

  • 法国编号计划目前有10位电话号码,写为xx.xx.xx.xx.xx。 它曾经有8位数字,而法兰西岛(巴黎市区)则有特殊规定。 更正式地讲,法语号码应写为+33:xx.xx.xx.xx.xx,但如果在法国境外拨打电话,则应省略电话号码中的前导“ 0”,因此从外部来看,电话号码应表示为+33:x.xx.xx.xx.xx。

其他国家和拨号/编号计划有其自己的规则。 有时,在某些地方会有关于在给定国家/地区中特定位置的来回呼叫的特殊规则(例如,过去,从巴黎拨打位于法兰西岛之外的号码需要先拨打“ 16”前缀。)美国(在某些地区)甚至需要拨打全部10位数字才能拨打本地电话。

世界电话号码指南》中的更多信息(和链接)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM