Angular 6 Ввод валидатора для 4 символов, которые можно объединить? - PullRequest
0 голосов
/ 07 января 2020

У меня есть вход для 4 символов A, B, M, N. пользователь может ввести любое из этих значений (не менее 1 и не более 4, не повторяется). Мне нужен валидатор на случай, если пользователь введет другое значение, например: P или Z.

Пользователь может комбинировать эти символы, например, A, BM, NA, ABMN, но не AP (P не является действительным) любое предложение можно только приветствовать (Я использую angular поле ввода материала)

Попытка (это работает только тогда, когда я ввожу первое значение, например, 'a', но когда я ввожу второй символ, оно больше не работает, например, 'ab' :

 <mat-form-field >
        <input matInput placeholder="Cara/s" [(ngModel)]="caras_selec" name="caras" #caras="ngModel" [pattern]="[abmn]"
        minlength="1" maxlength="4">
      </mat-form-field>

1 Ответ

0 голосов
/ 07 января 2020

Вы можете использовать отрицательное прогнозное утверждение.

Это позволяет любому из символов a, b, n или m без повторения. Это неявно заботится о макс. 4 символах. Нет необходимости явно упоминать {1,4} ограничение по количеству символов

^(?!.*(.).*\1)[abnm]+$

Live Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...