Ответ 1
Самый простой способ сопоставить оба
^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$
и
^[0-9]{3}-[0-9]{3}-[0-9]{4}$
заключается в использовании чередования ((...|...)
): укажите их как два основных варианта:
^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$
Кстати, когда американцы помещают код области в круглые скобки, мы фактически кладем пробел после этого; например, я бы написал (123) 123-1234
, а не (123)123-1234
. Поэтому вы можете написать:
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
(Хотя, вероятно, лучше всего явно продемонстрировать формат, в котором вы ожидаете, что будут номера телефонов.)