Большое спасибо брат @ 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).

Ответы на вопрос(1)

Ваш ответ на вопрос