【问题标题】:Angular 6 Input validator for 4 characters that can be combined?可以组合的4个字符的Angular 6输入验证器?
【发布时间】:2020-01-07 00:59:05
【问题描述】:

我有 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>

【问题讨论】:

  • 你能发布你编写验证器的尝试吗?
  • @RoddyoftheFrozenPeas 好的
  • 下面的答案对你有用吗?

标签: angular angular-material angular6 angular-validation angular-validator


【解决方案1】:

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

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

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

Live Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 2019-04-11
    • 1970-01-01
    • 2014-10-27
    • 2019-05-07
    相关资源
    最近更新 更多