Angular FormBuilder номер телефона в США Regex (xxx) xxx-xxxx - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь написать Angular валидатор Regex,

, который соответствует этому и только этому шаблону для телефона, с точными пробелами

(444) 333-2222

Как это можно сделать?

this.productForm = this.formBuilder.group({
  'homephoneNumber': [null, [PhoneUSValidator]],

Работа над этим кодом: Попытка добавить пробел после первой круглой скобки, не уверен, правильно ли

export const PhoneUSValidator = Validators.pattern(/^(\d{3}\)\d{3}\-\d{4}$/);

1 Ответ

1 голос
/ 06 августа 2020

Вам необходимо

  • Добавить буквальный пробел (или \s, чтобы разрешить любые пробелы) точно в том месте, где вы ожидаете, что он будет в строке
  • Экранировать символ ( после ^, потому что вам нужно соответствовать буквальной открытой круглой скобке.
  • Не экранировать -, который находится за пределами класса символов, т.е. не внутри [...] .

Вы можете использовать

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

См. Демонстрацию регулярного выражения

Подробности

  • ^ - начало строки
  • \( - a ( char
  • \d{3} - три цифры
  • \) - a ) символ
  • - пробел
  • \d{3}-\d{4} - три цифры, дефис, четыре цифры
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...