0

我输入了 4 个字符 A, B, M, N 。用户可以输入任何这些值(至少 1 和最大 4,不重复)。我需要一个验证器,以防用户输入另一个值,例如:P 或 Z。

用户可以组合这些字符,例如 A、BM、NA、ABMN,但不能组合 AP(P 无效),欢迎提出任何建议。(我正在使用角度材料输入字段)

尝试(这仅在我输入第一个值时起作用,例如'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>
4

1 回答 1

0

您可以使用否定的前瞻断言。

这允许字符 a、b、n 或 m 中的任何一个不重复。这也隐含地处理了最多 4 个字符。无需明确提及{1,4}字数限制

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

现场演示

于 2020-01-07T03:27:24.293 回答