我需要一个与美国手机匹配的正则表达式。实际上,在我的页面上我有用于获取输入的文本框,我有正则表达式验证器和正则表达式来验证999-999-9999
中的邮政编码。到这里一切都很好。后来我们添加了MaskedEditor扩展器以避免手动添加 - 在电话号码之间。 ClearMaskOnLostFocus也设置为false。因此,每次我们的文本框中都有___-___-____
。而且我的验证器现在总是在无效输入中验证它。
所以最后我想说,如果我的手机是有效的美国手机并且还通过了___-___-____
,我需要一个匹配的正则表达式,而不是它会破坏的那两个......
[现有正则表达式]
^[0-9]{3}[\-]{1}[0-9]{3}[\-]{1}[0-9]{4}$
答案 0 :(得分:2)
在Javascript中 - 这里:
/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
它来自谷歌...... http://www.zparacha.com/phone_number_regex/
这是一部分:
/^ = match must start with - no chars before
\(? = optional left brace
(\d{3}) = 3 digits
\)? = optional right brace
[- ]? = optional hyphen or space
(\d{3}) = 3 digits
[- ]? = optional hyphen or space
(\d{4}) = 4 digits
$/ = match must end here - no chars after
答案 1 :(得分:1)
只需使用以下内容:
(<your current regex>)|(___-___-____)
答案 2 :(得分:0)
尝试查看libphonenumber的灵感或用途。它有你需要的大部分内容。
答案 3 :(得分:0)
PhoneFormat.com有一个javascript库,无论你拥有什么样的格式,都可以使用你输入的任何数字,并正确格式化它。如果您通过___-___-____
或999-999-9999
,它会处理它。