Директива PatternValidator не проверяется, когда ей передается правильное значение строки регулярного выражения - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть поле ввода, вход которого должен быть положительным числом.

    <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 ]

0 голосов
/ 08 февраля 2019

[шаблон] скобки сообщают угловому, что нужно прочитать в выражении PositiveNumberRegex, без скобок он обрабатывает его как обычную строку

0 голосов
/ 08 февраля 2019

используйте шаблон [] вокруг для поддержки привязки.

 [pattern]="positiveNumberRegex">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...