Директива PatternValidator не проверяется, когда ей передается правильное значение строки регулярного выражения
У меня есть поле ввода, чьи данные должны быть положительными числами.
<input type="number" [(ngModel)]='assetValue'
type="number" pattern="positiveNumberRegex">
positiveNumber()
возвращает RegExp. Я храню это строковое значение в переменной. Это делается в хуке жизненного цикла OnInit.
this.positiveNumberRegex = this.regexPatternService.positiveNumber().source;
console.log(this.positiveNumberRegex); // ^[1-9][0-9]*[.]?[0-9]*$
Но проверка не проходит, когда я ввожу положительное число.
Если я жестко закодирую регулярное выражение в директиве pattern, он будет работать нормально.
<input type="number" [(ngModel)]='assetValue'
type="number" pattern="^[1-9][0-9]*[.]?[0-9]*$">
Что является причиной этого?
2 ответа
Использовать []
вокруг шаблона для поддержки привязки.
[pattern]="positiveNumberRegex">
Скобки [pattern] сообщают angular, что нужно прочитать в выражении positiveNumberRegex, без скобок он обрабатывает его как обычную строку