Angular 形式:Validators.email 与自定义正则表达式
Angular forms: Validators.email vs custom regex
在这个项目中,我看到人们同时使用 angular 的 "built-in" 验证器和自定义验证器。
内置如下:
this.emailForm = fb.group({
name: [null, Validators.required],
email: [
null,
{
validators: [Validators.required, Validators.email],
asyncValidators: []
}]
});
自定义的看起来像:
const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
export class CustomValidators {
getEmailValidator(): any{
return Validators.pattern(EMAIL_REGEX);
}
}
并在 formBuilder 中使用:
this.registerForm = this.formBuilder.group({
'displayName' : [''],
'email' : ['', [Validators.required, this.customValidators.getEmailValidator()]],
});
与内置的 angular 表单验证器相比,自定义(容易出错)正则表达式包装验证器是否会增加价值?
使用模式验证器从用户那里获取严格的电子邮件总是好的。
如果我们使用 in-built 验证器 Validators.email
,这会使 abcd@example
有效。
并且使用正则表达式模式,我们可以自定义电子邮件验证,使其仅在具有完整的电子邮件地址时才有效,例如 abcd@example.com
。
因此,通过使用 pattern/custom 个验证器,我们可以选择自定义验证
请找到工作plnkr
在这个项目中,我看到人们同时使用 angular 的 "built-in" 验证器和自定义验证器。
内置如下:
this.emailForm = fb.group({
name: [null, Validators.required],
email: [
null,
{
validators: [Validators.required, Validators.email],
asyncValidators: []
}]
});
自定义的看起来像:
const EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
export class CustomValidators {
getEmailValidator(): any{
return Validators.pattern(EMAIL_REGEX);
}
}
并在 formBuilder 中使用:
this.registerForm = this.formBuilder.group({
'displayName' : [''],
'email' : ['', [Validators.required, this.customValidators.getEmailValidator()]],
});
与内置的 angular 表单验证器相比,自定义(容易出错)正则表达式包装验证器是否会增加价值?
使用模式验证器从用户那里获取严格的电子邮件总是好的。
如果我们使用 in-built 验证器 Validators.email
,这会使 abcd@example
有效。
并且使用正则表达式模式,我们可以自定义电子邮件验证,使其仅在具有完整的电子邮件地址时才有效,例如 abcd@example.com
。
因此,通过使用 pattern/custom 个验证器,我们可以选择自定义验证
请找到工作plnkr