php的简单电话号码正则表达式

时间:2012-10-28 17:36:44

标签: php regex preg-match

我一直在寻找一个简单的电话号码正则表达式,它只匹配这种格式: (XXX)XXX-XXXX< ---括号和后面的空格

对于我的生活,我无法弄清楚为什么这不起作用(这是我尝试制作自己并且已经修补了几个小时):

^[\(0-9\){3} [0-9]{3}-[0-9]{4}$

我在网上到处寻找正则表达式与特定格式匹配无济于事。 请帮忙?

6 个答案:

答案 0 :(得分:6)

以下正则表达式

^\(\d{3}\) \d{3}-\d{4}$

^ = start of line
\( = matches parenthesis open
\d = digit (0-9)
\) = matches parenthesis close

答案 1 :(得分:1)

这是一个有效的

/^\(\d{3}\) \d{3}-\d{4}\s$/


你的问题:

匹配数字只需使用\d[0-9](需要使用方括号,您在第一次出现时已经忘记了它们) 匹配括号使用\(\)。它们必须被转义,否则它们将被解释为匹配,你的正则表达式将无法编译

答案 2 :(得分:1)

您遇到的问题是:

  1. 您需要使用反斜杠转义特殊字符(如括号),如下所示:\(
  2. 开头有一个未封闭的方括号。
  3. 否则,你很好!

答案 3 :(得分:0)

[]定义字符类。例如“在这一个单一角色点,以下任何一个都可以匹配”。您的括号未对齐:

^[\(0-9\){3} [0-9]{3}-[0-9]{4}$
 ^---no matching closer

e.g。

^[0-9]{3} [0-9]{3}-[0-9]{4}$

会更接近你想要的。

答案 4 :(得分:0)

/(\(\d{3}+\)+ \d{3}+\-\d{4}+)/ (000) 000-0000

/(\d{3}+\-\d{3}+\-\d{4}+)/ 000-000-0000

答案 5 :(得分:0)

已编辑^\(?\d{3}\)?\s?\-?\d{3}\s?\-?\d{4}$

in Php适用于以下

(999)999 9999

(999)999-9999

(999)999-9999

999 999 9999

999 999-9999

999-999-9999