Ahm*_*neh 5 validation angular
我有一个可选的电子邮件字段,但如果有值应该与电子邮件模式匹配?
如果表单有许多可选字段,如网站、电话等,那会怎样?
顺便说一下,我正在使用 FormBuilder、FormGroup、Validators 表单 @angular/forms
小智 10
通过创建一个 optionalValidator 解决了这个问题:
import { ValidatorFn, AbstractControl, Validators } from '@angular/forms';
export function optionalValidator(validators?: (ValidatorFn | null | undefined)[]): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } => {
return control.value ? Validators.compose(validators)(control) : null;
};
}
Run Code Online (Sandbox Code Playgroud)
在我的反应形式中:
this.form = this._fb.group({
email: [this.contact.email, [optionalValidator([Validators.maxLength(255), Validators.email])]]
});
Run Code Online (Sandbox Code Playgroud)
小智 2
前任:
contactForm:FormGroup = new FormGroup({});
ngOnInit() {
const validateEmail = "[a-zA-Z0-9._\-]+[@]+[a-zA-Z0-9\-]+[.]+[a-zA-Z]{2,6}";
this.contactForm.addControl("email", new FormControl('', Validators.pattern(validateEmail));
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以创建可选字段,但是当您有需要验证的数据时
编辑:添加-到允许的字符
| 归档时间: |
|
| 查看次数: |
6943 次 |
| 最近记录: |