Директива 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, без скобок он обрабатывает его как обычную строку

Другие вопросы по тегам