Angular 2根据掩码验证输入

时间:2017-07-01 19:08:14

标签: angular validation angular-forms

我在Angular 2项目中使用this plugin来掩盖一些输入。

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

每当我尝试检查值时,它都是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)
    ])],
});

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

1 个答案:

答案 0 :(得分:0)

只需从@ developer033注册正确答案即可。对我来说,它就像是一种魅力。

  

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

尽管我使用了适合自己需求的模式。