2017-01-23 4 views
-1

Мне нужно проверить пароль ввода пользователя, если он содержит письмо, чтобы сделать его более сильным. Если пароль содержит только цифры или буквы, он должен указать, что пароль слабый, а форма недействительна. Вот мой код.Validator, чтобы проверить, содержит ли пароль хотя бы 1 букву или цифру

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> 

EDIT: Как я могу проверить ввод данных пользователя, если он содержит буквы и цифры, и возвращает слабый пароль, если он содержит только номер или только буквы только?

+0

В чем конкретно проблема? Все, что вы сделали, бросило нам некоторый код с небольшим объяснением, есть ли у вас проблема? Почему это вопрос? Пожалуйста, измените. – pattyd

+0

отредактировал. добавил вопрос. благодаря :) –

ответ

0

Я решил проблему с помощью Regex.

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

Это проверит, содержит ли пароль хотя бы одну букву или номер. Затем добавьте подтверждение в свой html.

<span *ngIf="registrationForm.controls.password.hasError('pattern') && registrationForm.get('password').touched" class="alert alert-danger">Weak password</span>