可能重复:
美国电话号码验证
我需要验证美国电话号码。它可以是以下格式:
xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx
但不应该
xxx-xxx-xxxx-
-xxx-xxx-xxxx
它应该接受数字、连字符、空格和括号。
目前我使用
^\[0-9 \-\. ]+$
它不会在开头或结尾验证破折号。
可能重复:
美国电话号码验证
我需要验证美国电话号码。它可以是以下格式:
xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx
但不应该
xxx-xxx-xxxx-
-xxx-xxx-xxxx
它应该接受数字、连字符、空格和括号。
目前我使用
^\[0-9 \-\. ]+$
它不会在开头或结尾验证破折号。
^\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$
这一个可能是正确的(假设某些解析错误取决于您使用的正则表达式引擎。它也很丑陋:(。
(?:\d{3}(?:\d{7}|\-\d{3}\-\d{4}))|(?:\(\d{3}\)(?:\-\d{3}\-)|(?: \d{3} )\d{4})
(^\(?[0-9]{3}\)?\-?\s?[0-9]{3}\-?\s?[0-9]{4}[^-])
我在http://regexhero.net/tester/上对此进行了测试,并让它选择以下模式:
xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx
它忽略了以下模式:
xxx-xxx-xxxx-
-xxx-xxx-xxxx
我希望这会有所帮助,或者至少能让你朝着正确的方向前进。
这应该可以解决问题:
/^([\d]{6}|((\([\d]{3}\)|[\d]{3})( [\d]{3} |-[\d]{3}-)))[\d]{4}$/
xxxxxx
,(xxx)
还是只是xxx
xxx
或-xxx-
xxxx