Angular Reactive Form-响应式表单验证

内建验证规则

Angular中提供了一些內建的Validators,这些验证规则可以在Template-Driven或Reactive表单中使用。

目前 Angular 支持的内建 validators 如下:

  • required - 设置表单控件值是非空的。

  • email - 设置表单控件值的格式是 email。

  • minlength - 设置表单控件值的最小长度。

  • maxlength - 设置表单控件值的最大长度。

  • pattern - 设置表单控件的值需匹配 pattern 对应的模式。

示例

this.signupForm = this.fb.group({
  userName: ['', [Validators.required, Validators.minLength(3), Validators.maxLength(50)]],
  email: ['', [Validators.required, Validators.email, Validators.pattern('[a-z0-9._%+_]+@[a-z0-9.-]+')]]
});

官方文档:https://v2.angular.cn/docs/ts/latest/cookbook/form-validation.html

动态调整验证规则

myControl.setValidators(Validators.required);
myControl.setValidators([Validators.required, Validators.maxLength(6)]);

myControl.clearValidators();   
myControl.updateValueAndValidity();

转自:https://segmentfault.com/a/1190000010064866