Простой номер телефона regex для php

Я искал простое регулярное выражение для номера телефона, которое будет соответствовать именно этому формату: (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 

Проблемы, с которыми вы сталкиваетесь:

  1. Вам нужно избежать специальных символов (например, круглые скобки) с обратной косой чертой, например: \(
  2. Вначале у вас есть незамкнутая квадратная скобка.

В противном случае, ты хороший!

вот рабочий

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

проблемы с вашими:

для сопоставления цифр просто используйте \d или [0-9] (необходимы квадратные скобки, вы забыли их в первом случае), чтобы использовать скобки \( и \) . Они должны быть экранированы, иначе они будут интерпретироваться как совпадение, и ваше регулярное выражение не будет компилироваться

[] определить классы символов. например, «в этом единственном месте символа, любое из следующего может совпадать». Ваши скобки смещены:

 ^[\(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