电话号码格式检查javascript


phone number format checking javascript

我用JS和php做了一个网站,正如你所看到的,下面是我在粘贴bin的代码,我已经环顾四周,看到了正则表达式,但我不知道如何使用它们或我应该使用....但基本上我只想让用户输入北美的电话号码,如果他们输入其他东西,然后给他们一个消息,让他们输入一个有效的电话号码…

下面是我的代码,以帮助您了解我有什么…我需要什么,我的网站的界面看起来像什么…

http://pastebin.com/8NwURm0G

用户可以输入的电话号码有9058554678或4167641689…

列表是这样的:

http://dev.icalapp.rogersdigitalmedia.com.rogers-test.com/Edit.php

这是我放置的仅匹配10位NA数字的正则表达式,基于NANP

/(?:(?:'+?1's*(?:[.-]'s*)?)?(?:('s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])'s*)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))'s*(?:[.-]'s*)?)([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})'s*(?:[.-]'s*)?([0-9]{4})/

在使用正则表达式之前,有必要先阅读它们,因为它们可能有点棘手和不直观。

很好的教程:http://www.regular-expressions.info/quickstart.html

根据您列出的有效输入,您要查看用户是否输入了10个数字。这可以通过检查一个字符是否是数字,然后看看是否有10个数字来完成,这将是正则表达式:[0-9]{10}。示例:

var myRegEx = /[0-9]{10}/;
var itemsToTest = ["9058554678","abc"];
for (var ii=0;ii<itemsToTest.length;ii++) {
    if ( myRegEx.test(itemsToTest[ii]) ) {
        alert(itemsToTest[ii] + " is valid!");
    }
}

测试:http://jsfiddle.net/87ea8/

^'d{10}$

匹配10位数字。

^1?'d{10}$

匹配10位数字,前面有一个可选的1。

^(?:1-?'s*)?(?:'(?:'d{3}')|'d{3})'s*-?'d{4}$

匹配数字分组,如1-444-555-6666(444) 555-6666,以及一些相关的数字分组。

在google上快速搜索得到以下结果。你可能想把它和米切尔的答案结合起来。

function isPhoneNumber(s)
{
 // Check for correct phone number
 rePhoneNumber = new RegExp(/^'([1-9]'d{2}')'s?'d{3}'-'d{4}$/);
 if (!rePhoneNumber.test(s)) {
      alert("Phone Number Must Be Entered As: (555) 555-1234");
      return false;
 }
return true;
}