正则表达式只允许数字,超量,空格,括号,并应以数字结尾(javascript)

San*_*eep 4 regex phone-number

可能重复:
美国电话号码验证

我需要验证美国的电话号码.它可以采用以下格式:

xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

但它不应该

xxx-xxx-xxxx-
-xxx-xxx-xxxx
Run Code Online (Sandbox Code Playgroud)

它应该接受数字,连字符,空格和括号.

目前我用

^\[0-9 \-\. ]+$ 
Run Code Online (Sandbox Code Playgroud)

它不会在开头或结尾验证短划线.

sta*_*afl 5

^\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$
Run Code Online (Sandbox Code Playgroud)

  • 或者这个:`xxx) xxx-xxxx` 或者这个:`xxxxxx xxxx` (2认同)

Eug*_*ene 5

好吧,我的想法(经过一番搜索)一点也不新鲜!看这个:

用于电话号码验证的综合正则表达式

顺便说一句,这是一个很好的建议。