在 Ionic 的反应式表单中添加自定义验证时发生错误

詹妮弗·约翰逊

我一直在尝试在 ionic 中的 Reactive Forms 中添加自定义验证,但是当我添加它时,它会出错。

我的表单验证代码:

this.loginForm = this.formBuilder.group({
  username: [
    "",
    [Validators.required, this.validationService.regExUsername],
  ],
  password: [
    "",
    [Validators.required, this.validationService.regExsPassword],
  ],
});

我的验证服务代码:

regExUsername = "^[\\w_.@][\\w_.@-]*$";
regExPassword ="^[A-Za-z0-9[\\]\\!\\@\\#\\^\\(\\)\\+\\=\\è\\é\\à\\ù\\ò\\_\\-\\*\\$]*$";

我得到的错误:

       core.js:6241 ERROR Error: Uncaught (in promise): TypeError: v is not a function
       TypeError: v is not a function
       at forms.js:1599
       at Array.map (<anonymous>)
       at _executeValidators (forms.js:1595)
       at FormControl.validator (forms.js:1537)
       at FormControl._runValidator (forms.js:4347)
       at FormControl.updateValueAndValidity (forms.js:4308)
       at new FormControl (forms.js:4920)
       at FormBuilder.control (forms.js:9481)
       at FormBuilder._createControl (forms.js:9541)
       at forms.js:9520
       at resolvePromise (zone-evergreen.js:798)
       at resolvePromise (zone-evergreen.js:750)
       at zone-evergreen.js:860
       at ZoneDelegate.invokeTask (zone-evergreen.js:399)
       at Object.onInvokeTask (core.js:41645)
       at ZoneDelegate.invokeTask (zone-evergreen.js:398)
       at Zone.runTask (zone-evergreen.js:167)
       at drainMicroTaskQueue (zone-evergreen.js:569)  

我无法弄清楚是什么问题。如果有人知道,请告诉我。谢谢

HS程序

可以通过对用户名和密码的验证码进行一些更改来解决,如下所示:

  username: new FormControl(
    "",
    Validators.compose([
      Validators.required,
      Validators.pattern(this.validationService.regExUsername),
    ])
  ),
  password: new FormControl(
    "",
    Validators.compose([
      Validators.required,
      Validators.pattern(this.validationService.regExsPassword),
    ])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章