angular 2中的密码验证,满足以下条件:

时间:2018-11-19 04:46:30

标签: javascript angular2-template angular2-forms

  • 密码必须至少七(7)个字符长,并且包含所有 以下内容之一:
  • 至少一个小写字母(a,b,c,... z)
  • 至少一个大写字母(A,B,C,... Z)
  • 至少一个数字(0、1、2,... 9)
  • 至少一个特殊字符(!,@,$,%,#…)

我尝试了以下方法:

<div class="form-group row">
                <label class="col-md-2 col-form-label" for="passcode">Password *</label>
                <div class="col-md-3">
                    <input class="form-control" type="password" placeholder="Password" formControlName="passCode" [(ngModel)]="userDetails.passCode" pattern="^(?=.*\d)(?=.*[a-z])(?!.*\s).{7,12}$">
                    <div *ngIf="userAdd.controls['passCode'].hasError('required')&&(userAdd.controls.passCode?.dirty ||userAdd.controls.passCode?.touched)" class="alert alert-danger">
                        {{errorMessageForRequired}}
                    </div>
                    <div *ngIf="userAdd.controls['passCode'].errors && userAdd.controls['passCode'].errors.pattern" class="alert alert-danger">
                        Passcode must contain only letters, numbers and underscores (7-12 characters)
                    </div>
                </div>
            </div>

请帮助我

1 个答案:

答案 0 :(得分:1)

我认为您的regex有点问题。
符合以下条件的通行证:Qwert!1

<form>
<input type="text" pattern="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{7,64})" required placeholder="Qwert!1"/>
<input type="submit" />
</form>