【发布时间】:2013-04-13 16:29:01
【问题描述】:
我在堆栈溢出中发现了这个很棒的正则表达式,并添加了我的电话验证所需的其他格式。但现在我被要求允许以下内容:
(555)YOU-RULE
(555) MEI-YOUN
(555)YOURULE
555YOURULE
555 YOU RULE
555-YOU-RULE
以上所有内容均以 1 开头。鉴于我在下面针对非字母数字提供的解决方案,我不确定该怎么做
只有数字:
var formats = "(999)999-9999|999-999-9999|(999) 999-9999|1(999) 999-9999|1(999)999-9999|999 999 9999|999.999.9999|1.999.999.9999|9999999999";
var r = RegExp("^(" +
formats
.replace(/([\(\)])/g, "\\$1")
.replace(/9/g,"\\d") +
")$");
phoneOK = r.test(phone);
【问题讨论】:
-
值得指出的是,您的表达式只会验证美国格式的电话号码。大多数海外国家使用不同的格式。这对您来说可能很重要,也可能无关紧要,具体取决于您的目标受众,但为了其他可能稍后阅读此问题的人的利益,无论如何都值得一提。
标签: javascript regex phone-number