У меня проблема с использованием validators.pattern реактивной формы. Если я добавлю валидацию в группу formbuilder, она будет работать нормально, что означает, что поле недействительно, когда шаблон регулярного выражения не соблюдается. Но когда я добавляю проверку динамически в момент отправки, если я ввожу значение в неправильном шаблоне, он говорит, что ввод действителен, а когда я добавляю значение в правильный шаблон, он говорит, что он недействителен. o_O
- Валидатор в конструкторе форм
form = this.formBuilder.group({
field: [null, Validators.pattern('^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$')]
});
Валидатор добавляется динамически:
this.form.controls[field].setValidators([Validators.pattern('/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/')]);
this.form.controls[field].updateValueAndValidity();
Единственное различие, которое я обнаружил, заключается в том, что мне нужно добавить / во втором методе. Если я удалю / , валидатор не будет работать.
Я тоже пробовал this.form.get('field').setValidators...
, но поведение было таким же.
Вы, ребята, знаете, что я делаю не так?
Спасибо!