Angular Validator Pattern работает в HTML, но не в TypeScript - PullRequest
0 голосов
/ 22 марта 2019

Следующее Регулярное выражение работает в HTML, как в следующем примере:

<input type="text" formControlName="mgmtIP" class="input-text" pattern="([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])">

Но если я хочу поместить этот шаблон в FormGroup, Валидатор не распознается:

mgmtIP: [host.mgmtIP, [
            Validators.required,
            Validators.pattern(/^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$/)
          ]],

Я пытался поместить это в строку, убрав ^ и $.Это не сработало ни

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

ОК, я нашел ответ на этот вопрос. Я был просто глуп У меня была начальная форма с валидаторами в массиве форм. Затем я добавил туда новые группы форм, где эти валидаторы не были настроены. В любом случае спасибо за вашу помощь!

0 голосов
/ 22 марта 2019

Лично я не стал бы использовать регулярные выражения для этого, поскольку он запутывает код и его трудно отлаживать (вы уже знаете это).Более простой способ проверить правильность ip:

  1. Разрешить только [0-9.]
  2. Разделить на .
  3. Проверить, не являются ли сегменты пустымии в диапазоне

Я не говорю, что регулярное выражение не является жизнеспособным для этого, но для удобства обслуживания я бы не пошел этим путем (или использовал хорошо проверенное регулярное выражение).

...