#javascript
#javascript
Вопрос:
это мой код, но он не работает, и я не знаю, почему?:
const phoneRegex = RegExp(
/^( 1)?[-]?([0-9]{3}))?[-]?([0-9]{3})[-]?([0-9]{4})$/
);
это решение появилось из этого, которое работает для xxx-xxx-xxx:
const phoneRegex = RegExp(/^(?([0-9]{3}))?[-]?([0-9]{3})[-]?([0-9]{4})$/);
как мне добавить 1- с начала, чтобы заставить работать 1-xxx-xxx-xxxx?
Ответ №1:
Похоже, что вы пытаетесь сопоставить ‘(‘ и ‘)’ буквально в части ( 1), ''
что означает, что вы хотите экранировать символ. Если вы имели в виду, что это просто необязательная группа захвата, обновите ее до: /^( 1)?[-]?([0-9]{3}))?[-]?([0-9]{3})[-]?([0-9]{4})$/
Комментарии:
1. эй, я не хочу, чтобы это было необязательно: (
2. Если вы хотите, чтобы все части были обязательными, исключите ? из каждой группы: /^( 1)[-]([0-9]{3}))[-]([0-9]{3})[-]([0-9]{4})$/ regular-expressions.info/optional.html имеет несколько хороших руководств по регулярным выражениям.