我正在尝试对Angular 6 FormBuilder使用带有Validators.pattern()的正则表达式,但是验证从未通过。我已经在https://codepen.io/devtips/pen/gzqKKP上测试了RegEx,以查看它是否被接受。

我写的表达式是/^[(0-9)]*[\s][\d]{1,5}-?[\d]{1,5}$/,而我尝试验证的格式是(000) 000-0000(000) 0000-0000,但是我的输入始终显示无效的结果。

buildAgentDetailsForm() {
this.agentDetailForm = this.fb.group({
  FirstName: ['', [Validators.required, Validators.nullValidator]],
  LastName: ['', [Validators.required, Validators.nullValidator]],
  Email: ['', [Validators.required, Validators.email]],
  Phone: [
    '',
    [
      Validators.required,
      Validators.pattern(/^[(0-9)]*[\s][\d]{1,5}-?[\d]{1,5}$/)
    ]
  ],
  EmergencyPhone: ['', [Validators.required]],
  Address: ['', [Validators.required]]
  });
}


我的表达方式写错了吗?另外,我在输入字段上使用了一个掩码,因此它将限制输入并包括()和破折号

最佳答案

尝试用以下方式替换模式验证器:Validators.pattern("[(0-9)]*[\\s][\\d]{1,5}-?[\\d]{1,5}")

关于javascript - Angular 6 Validators.pattern()正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51902479/

10-09 13:00