繁体   English   中英

如何验证角度2中的可选字段?

[英]How to validate optional field in angular 2?

我有一个电子邮件字段,该字段是可选的,但如果值应与电子邮件格式匹配?

如果表单具有许多可选字段,如网站,电话等,该怎么办?

顺便说一下,我使用FormBuilder,FormGroup,Validators form @ angular / forms

通过创建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;
    };
}

以我的反应形式:

this.form = this._fb.group({
      email: [this.contact.email, [optionalValidator([Validators.maxLength(255), Validators.email])]]
    });

例如:

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));
}

这样,您可以创建可选字段,但是当您有需要验证的数据时

编辑:添加-添加到允许的字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM