3

我在我的 Angular 2 项目中使用这个插件来屏蔽一些输入。

我遇到的问题是验证输入是否应用了正确的掩码。

每当我尝试检查它的值时,它总是valid。例如,我有一个掩码来填写电话号码,就像在示例中一样:

@Component({
  template: `
    <input [textMask]="{mask: mask}" type="tel" formControlName="phone" />
  `
})

export class AppComponent {
  public myModel = ''
  public mask = ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
}

但是,即使我填写了 2 个数字(11_) ___-____,它也会将该字段视为valid.

我试图设置一个自定义验证器来检查输入长度,但它也通过了,因为它被预填充了_.

this.registerForm = this._fb.group({
    'phone': [null, Validators.compose([
        Validators.required,
        Validators.minLength(14),
        Validators.maxLength(14)
    ])],
});

我不知道如何为这种类型的场景创建验证,包括更复杂的验证。

4

1 回答 1

1

只需从@developer033 注册正确答案。它对我来说就像一个魅力。

以下应该按预期工作:Validators.pattern(/^([1-9]\d{2})\s\d{3}-\d{4}$/);

虽然我使用了适合我需要的模式。

于 2019-07-26T15:36:23.417 回答