Angular 角度2基于掩码验证输入

Angular 角度2基于掩码验证输入,angular,validation,angular-forms,Angular,Validation,Angular Forms,我在Angular 2项目中使用来屏蔽一些输入 我的问题是验证输入是否应用了正确的掩码 每当我尝试检查该值时,它总是有效的。例如,我有一个用于填充电话号码的掩码,如示例中所示: @Component({ template: ` <input [textMask]="{mask: mask}" type="tel" formControlName="phone" /> ` }) export class AppComponent { public myModel

我在Angular 2项目中使用来屏蔽一些输入

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

每当我尝试检查该值时,它总是有效的。例如,我有一个用于填充电话号码的掩码,如示例中所示:

@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/]
}

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

只是从@developer033注册了正确的答案。这对我来说很有魅力


以下各项应按预期工作: 模式(/^([1-9]\d{2})\s\d{3}-\d{4}$/)


尽管我使用了适合我需要的模式。

您需要编写一个
自定义验证
代码来去除屏蔽字符并返回
true
false
以下内容应按预期工作:
Validators.pattern(/^\([1-9]\d{2}\)\s\d{3}-\d{4}$/)
this.registerForm = this._fb.group({
    'phone': [null, Validators.compose([
        Validators.required,
        Validators.minLength(14),
        Validators.maxLength(14)
    ])],
});