Большое спасибо брат @ WiktorStribiżew
ичок в angular 5, здесь я пытаюсь подтвердить пароль пользователя на основе некоторых условий.
Минимум шесть символов, как минимум одна буква и одна цифраМинимум восемь символов, как минимум одна буква, один номер и один специальный символМинимум восемь символов, как минимум одна заглавная буква, одна строчная буква и одна цифраПользователь может выбрать один из приведенных выше шаблонов для поля пароля, сообщение об ошибке проверки изменится соответственно.
Для меня ни одно из вышеперечисленных условий не работает правильно.
может кто-нибудь помочь мне решить это.
Примечание: если я даю шаблон непосредственно в HTML, он работает правильно
app.component.html
<mat-form-field class="col-sm-12">
<mat-label>Enter your password</mat-label>
<input matInput placeholder="Password" [pattern]="patternNormal" [formControl]="fPassword" placeholder="Password" required>
<mat-error *ngIf="fPassword.errors?.required">Please fill out this field</mat-error>
<mat-error *ngIf="fPassword.errors&&fPassword.errors.pattern">{{errorMgs}}</mat-error>
</mat-form-field>
app.component.ts
export class SnackBarOverviewExample {
//Minimum six characters, at least one letter and one number:
patternNormal: any = "^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6,}$";
//Minimum eight characters, at least one letter, one number and one special character:
patternMedium: any = "^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$";
//Minimum eight characters, at least one uppercase letter, one lowercase letter and one number:
patternHign: any = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}";
fEmail = new FormControl();
fPassword = new FormControl();
errorMgs: string;
selectedPattern: string;
constructor(private _formBuilder: FormBuilder) { }
ngOnInit() {
this.selectedPattern = 'patternNormal'; //will change based on user preference
if (this.selectedPattern === 'patternNormal') {
this.errorMgs = 'Password must have min 6 char,atleast 1 num and 1 char'
} else if (this.selectedPattern === 'patternMedium') {
this.errorMgs = 'Minimum eight characters, at least one letter, one number and one special character'
} else if (this.selectedPattern === 'patternHign') {
this.errorMgs = 'Minimum eight characters, at least one uppercase letter, one lowercase letter and one number'
}
}
Stackblitz URL:https://stackblitz.com/edit/angular-stacb4-5oaagd?file=app%2Fsnack-bar-overview-example.ts
Обновить :
1, примерное значение для первого шаблона - abcde1 (показывает ошибку, но то же значение принимается, когда я даю шаблон непосредственно в HTML).