使用JavaScript与.NET的电话号码验证?

问题描述:

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

验证电话号码是一个棘手的问题。

本质上,您可以定义一个正则表达式来匹配有效电话号码的模式。电话号码的约定是高度局部的,不知道用户的位置,很难概括。我的一般规则是:“拿用户给你的东西,去除除数字之外的所有东西,只存储数字,并将其格式化以便显示。即使这样也不总能正常工作,因为有人可能会给你一个完全有效的数字,如555-1234 x345,因为他们只能通过PBX分机到达,他们已经省略了区号,如果你删除了非数字,你将剩下5551234345,这将被格式化为555-123-4335。不太实用。

  • NANP(North American Numbering Plan)的电话号码有3位区号(可选),一个3位数的中心局(CO /交换)号和一个4位数的用户号码,加上可选的国家代码,接入码,等等。通常写成(各种省略国家代码和接入码):(AAA)BBB-CC CC,AAA-BBB-CCCC,AAA.BBB.CCCC等。更正式地,NANP编号(1区,包括美国及其海外领土,坎达和大部分加勒比国家)应写为+1:AAA-BBB -CCCC。

  • French Numbering Plan目前有10位数字的电话号码,写为xx.xx.xx.xx.xx.它曾经有8位数字,Isle de France(巴黎地铁)有特殊的规则。更正式地说,一个法国号码应该写成+33:xx.xx.xx.xx.xx,除了如果在法国之外拨打的电话号码,应该省略电话号码中的前导'0',所以从外部来看,电话号码应表示为+33:x.xx.xx.xx.xx。

其他国家和拨号/编号计划有他们自己的规则。有时在特定国家的特定地点拨打和接听电话的地方有特殊规定(例如,以前拨打位于法国巴黎岛外的号码需要先拨“16”字头)。美国,某些地点,即使拨打本地电话也需要拨打全部10位数字。

更多信息(和链接)在World Telephone Numbering Guide

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

使用方法如下:

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