Избавление от всех этих -?
последовательностей, вероятно, самый быстрый способ - они означают ноль или один -
символов.
Это уменьшит его до:
/^(1)?(\([2-9]\d{2}\)|[2-9]\d{2})[2-9]\d{2}\d{4}$/
который может быть дополнительно упрощен до:
/^1?(\([2-9]\d{2}\)|[2-9]\d{2})[2-9]\d{6}$/
Если вы также хотите запретить использование квадратных скобок, вы можете еще больше упростить его до:
/^1?[2-9]\d{2}[2-9]\d{6}$/
(и, технически, он не будет совпадать с литералом 203-123-1234
, так как символ сразу после этого первого -
должен быть от 2 до 9, поэтому я предполагаю, что вы только что говорили о формате , а не значения там).