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

Why Angular pattern validation does not work?

我有验证规则:

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

当我输入值时:40.333

验证为错误,为什么?

HTML 是:

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

由于您要传递一个字符串来形成正则表达式(而不是正则表达式本身),因此您需要对其进行双重转义。

尝试

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

.+ 不是必需的,因为纬度是十进制值。 . 应该只出现一次。