Angular 6: Validators.pattern не работает должным образом - PullRequest
0 голосов
/ 28 августа 2018

У меня есть Validators.pattern для поля, и это единственное подтверждение в моей форме.

Нормальное использование работает. Он правильно проверяет поле, однако проблема возникает при попытке скопировать и вставить.

Если вы неоднократно копируете и вставляете поле в поле, это похоже на то, что поле корректно переключается (кнопка отправки отключена, если форма недействительна)

Проблема также возникает, когда я заполняю данные из другого источника, например поиска или автоматического предложения.

buildForm(obj) {
  this.form = this.fb.group({
    field: [obj['field'] || '', Validators.pattern(/MY_REG_EX_HERE/g)],
    id: [obj['id'] || ''],
  });  
}

1 Ответ

0 голосов
/ 28 августа 2018

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

import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';

export function customValidator(control: AbstractControl) {
    if (control.value !== '') {
      const isValid = (/MY_REG_EX_HERE/g).test(control.value)
      return isValid ? null : { customValidator: true };
    } else {
      return null;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...