正则表达式来验证美国电话号码?
问题描述:
可能重复:
A comprehensive regex for phone number validation
Validate phone number with JavaScript正则表达式来验证美国电话号码?
我想写一个正则表达式来验证美国格式 (123)123-1234的手机号码 - 真 123-123-1234 - true
其他所有东西都无效。
我想出了类似
^\(?([0-9]{3}\)?[-]([0-9]{3})[-]([0-9]{4})$
但这种验证, 123)-123-1234 (123-123-1234
这是不正确的。
答
最简单的方法以匹配两者
^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$
和
^[0-9]{3}-[0-9]{3}-[0-9]{4}$
是使用交替((...|...)
):指定它们作为两个主要-不同的选项:
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$
顺便说一句,当美国人把括号中的区号,我们实际上把那之后的空间;例如,我会写(123) 123-1234
,而不是(123)123-1234
。所以,你可能想要写:
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
(虽然它可能是最好明确表明你希望的电话号码是在格式。)
我觉得这是一个很大友好,让人们在手机类型以他们想要的方式编号。只需剥离非数字,然后坚持10个数字。 – Pointy 2012-03-19 19:14:22
这可能是重复的,但请在标记帖子之前链接到以前的答案。 – mindtonic 2015-03-24 12:23:19