我用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;
}