验证器检查密码是否包含至少1个字母或数字

时间:2017-01-23 02:12:02

标签: html angular angular2-forms

我需要检查用户输入密码,如果它包含一个字母以使其更强。如果密码仅包含数字或字母,则应提示密码较弱且表单无效。这是我的代码。

ngOnInit(){
        this.registrationForm = this._formBuilder.group({
            password: ['', [Validators.required, Validators.minLength(8)]]
        });
    }

html代码

            <div class="form-group">
                <label for="password" class="cols-sm-2 control-label">Password</label>
                <div class="cols-sm-10">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-lock fa-lg" aria-hidden="true"></i></span>
                        <input type="password" [(ngModel)]="user.password" class="form-control" name="password" id="password" placeholder="Enter your Password" formControlName="password"/>
                    </div>
                    <span *ngIf="registrationForm.controls.password.hasError('required') && registrationForm.get('password').touched" class="alert alert-danger">Password is required</span>
                    <span *ngIf="registrationForm.controls.password.hasError('minlength') && registrationForm.get('password').touched" class="alert alert-danger">Password should consist of 8 characters</span>
                </div>
            </div>

编辑:如果用户输入包含字母和数字,如何检查用户输入,如果只包含数字或仅包含字母,则返回弱密码?

1 个答案:

答案 0 :(得分:0)

我使用正则表达式解决了我的问题。

var settings = new JsonSerializerSettings()
                {
                    TypeNameHandling = TypeNameHandling.All
                };

这将检查密码是否包含至少一个字母或数字。然后在我的html中添加验证。

passwordRegex = /^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$/;