首页 > 解决方案 > Angular Validators.pattern 密码

问题描述

嗨,我正在学习 Angular 8 表单验证器,我可能知道如何使用 Angular 验证器来强制用户满足所有这些要求。- 至少 1 个 AZ - 至少 1 个 az - 至少 1 个 0-9 - 至少 1 个特殊字符

这是我尝试过的代码,但不知道为什么。

表单组代码:

newPassword: ['', [Validators.required, Validators.minLength(8), Validators.maxLength(50)], Validators.pattern((/?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&].{8,}/)],

html代码:

<input type="password" class="form-control" id="newPassword" name="newPassword"
                           placeholder="{{'global.form.newpassword.placeholder' | translate}}"
                           formControlName="newPassword">

                        <small class="form-text text-danger"
                               *ngIf="passwordForm.get('newPassword')?.errors?.pattern">
                            Must have alphanumeric and specia character.
                        </small>

抱歉,这可能是一个愚蠢的问题,但真的不知道如何解决。感谢您的时间和精力

标签: angular

解决方案


看起来您没有使用正确的签名。AFormGroup是许多 的对象FormControl。在这里,FormControl应该有值和验证器作为它的第一个和第二个参数。

  myFormGroup = {
    newPassword: new FormControl(
      '',
      [
        Validators.required,
        Validators.minLength(8),
        Validators.maxLength(50),
        Validators.pattern(/\d+/)
      ]
    )
  };

形成您的代码,Validators.patternAsyncValidatorFn它是ValidatorFn.


推荐阅读