Ограничить пользователя вводить первые два символа в виде букв, а не цифр - PullRequest
0 голосов
/ 23 апреля 2020

Как этого добиться Я использую Angular 7 и машинопись У меня есть данные поля ввода, подобные этим DK9520000123456789 Поэтому я хочу, чтобы пользователь ограничил ввод первых двух символов только буквами, а не цифрами. ("DK" 9520000123456789) Я не хочу, чтобы пользователь вводил цифры в первых двух символах.

<form class="bank-form-container {{ labelClass }}" [formGroup]="bankForm">
  <div class="col-md-6 pl-0">
    <label for="bankAcc" class="bank-label"> {{ label }}<i class="validateField">*</i> </label>
    <input
      [type]="isMaskedBankAcc ? 'password' : 'text'"
      (keypress)="numericOnly($event)"
      oninput="this.value = this.value.toUpperCase()"
      id="bankAcc"
      sp-popover
      name="bankAccountNumber"
      placement="right"
      placeholder="{{ placeHolder }}"
      class="form-control sp-focus text-uppercase"
      formControlName="bankAcc"
      appBlockCopyPaste
      autocomplete="off"
      (blur)="maskAndEncryptBankNumber()"
      (focus)="unmaskBankNumber()"
      [ngbTooltip]="toolTip"
      [pattern]="pattern"
      [required]="isRequired"
    />

ngOnInit() {



    this.bankForm = new FormGroup({
      bankAcc: new FormControl({ value: this.value ? this.value : '', disabled: this.isDisabled }, [
        Validators.required,
        Validators.pattern(/^\w{2}\d+$/i),
      ]),
      bankConfirmedAcc: new FormControl({ value: this.value ? this.value : '', disabled: true }, [
        Validators.required,
        Validators.pattern(/^\w{2}\d+$/i),
        this.checkMatchingValues.bind(this),
      ]),
    });

    this.checkFormValues();
    this.unmaskConfirmedBankNumber();
  }

1 Ответ

0 голосов
/ 23 апреля 2020

Я предполагаю, что вы используете FormControl для этого.

Затем просто добавьте валидатор шаблона: Validators.pattern(/^\w{2}\d+$/i). Требуется, чтобы пользователь вводил 2 буквы, а затем только цифры.

this.form = new FormGroup({
    inputField: new FormControl('', {
        validators: [Validators.required, Validators.pattern(/^\w{2}\d+$/)],
    }),
});

в шаблоне

<input [formControl]="form.get('inputField')">
<div *ngIf="form.get('inputField').hasError('pattern')">wrong pattern</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...