我一直在寻找一个简单的电话号码正则表达式,它只匹配这种格式:(XXX) XXX-XXXX <---需要括号和后面的空格
对于我的一生,我无法弄清楚为什么这行不通(这是我自己尝试制作并且已经修改了几个小时的一个):
^[\(0-9\){3} [0-9]{3}-[0-9]{4}$
我在网上到处寻找具有特定格式匹配的正则表达式,但无济于事。请帮忙?
我一直在寻找一个简单的电话号码正则表达式,它只匹配这种格式:(XXX) XXX-XXXX <---需要括号和后面的空格
对于我的一生,我无法弄清楚为什么这行不通(这是我自己尝试制作并且已经修改了几个小时的一个):
^[\(0-9\){3} [0-9]{3}-[0-9]{4}$
我在网上到处寻找具有特定格式匹配的正则表达式,但无济于事。请帮忙?
以下正则表达式有效
^\(\d{3}\) \d{3}-\d{4}$
^ = start of line
\( = matches parenthesis open
\d = digit (0-9)
\) = matches parenthesis close
这是一个工作的
/^\(\d{3}\) \d{3}-\d{4}\s$/
你的问题:
要匹配数字,只需使用\d
or [0-9]
(需要方括号,您在第一次出现时就忘记了它们)匹配括号使用\(
and \)
。它们必须被转义,否则它们将被解释为匹配并且您的正则表达式将无法编译
您遇到的问题是:
\(
否则,你很好!
[]
定义字符类。例如“在这个单个字符位置,以下任何一个都可以匹配”。您的括号未对齐:
^[\(0-9\){3} [0-9]{3}-[0-9]{4}$
^---no matching closer
例如
^[0-9]{3} [0-9]{3}-[0-9]{4}$
会更接近你想要的。
/(\(\d{3}+\)+ \d{3}+\-\d{4}+)/ (000) 000-0000
/(\d{3}+\-\d{3}+\-\d{4}+)/ 000-000-0000
已编辑^\(?\d{3}\)?\s?\-?\d{3}\s?\-?\d{4}$
在 PHP 适用于以下
(999) 999 9999
(999) 999-9999
(999) 999-9999
999 999 9999
999 999-9999
999-999-9999