0

我有一个输入字段,其输入应该是一个正数。

    <input  type="number" [(ngModel)]='assetValue'
     type="number" pattern="positiveNumberRegex">

positiveNumber()返回一个正则表达式。我将它的字符串值存储在一个变量中。这是在 OnInit 生命周期钩子中完成的。

this.positiveNumberRegex = this.regexPatternService.positiveNumber().source;
console.log(this.positiveNumberRegex); // ^[1-9][0-9]*[.]?[0-9]*$

但是当我输入一个正数时验证失败。

如果我将正则表达式硬编码为模式指令,它就可以正常工作。

    <input  type="number" [(ngModel)]='assetValue'
     type="number" pattern="^[1-9][0-9]*[.]?[0-9]*$">

这是什么原因?

4

2 回答 2

2

使用[]环绕模式来支持绑定。

 [pattern]="positiveNumberRegex">
于 2019-02-08T09:53:23.120 回答
0

[pattern] 方括号告诉 Angular 读取表达式 positiveNumberRegex 中的内容,没有方括号它会将其视为常规字符串

于 2019-02-08T10:01:55.537 回答