为什么Angular模式验证不起作用?

时间:2019-09-23 16:13:07

标签: regex angular angular8

我有验证规则:

latitude: [null, [Validators.pattern("^\d+\.+\d+$")]],

当我输入值时: 40.333

它验证为错误,为什么?

HTML是:

<input
      type="text"
      [ngClass]="{'has-error':form.get('latitude').invalid}"
      formControlName="latitude"
      maxlength="20"
      />

1 个答案:

答案 0 :(得分:4)

由于要传递字符串以形成正则表达式(而不是正则表达式本身),因此需要对其进行两次转义。

尝试

latitude: [null, [Validators.pattern("^\\d+\\.\\d+$")]],

由于纬度为十进制值,因此不需要+的{​​{1}}。 .应该只出现一次。