Angular内置邮件验证器使用的email validation regex是什么?
Angular v12 内置邮箱校验正则及源码位置
正则表达式内容
Angular v12 内置Validators.email校验器使用的正则表达式如下:/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_{|}~-]+(?:.[a-zA-Z0-9!#$%&'*+/=?^_{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
正则匹配规则符合业务场景常用的邮件协议要求:
- 限制完整邮箱地址长度不超过254位
- 限制@符号前的用户名部分长度不超过64位,支持RFC规范定义的合法特殊字符,排除了小众的带引号特殊格式
- 域名部分支持多级域名,每段域名长度不超过63位,中划线不能出现在段首或段尾
源码引用位置
该正则定义在@angular/forms包的src/validators.ts文件中,你可以在本地安装的v12版本Angular依赖中直接搜索EMAIL_REGEXP常量找到对应定义。
Angular从v2正式版到v16大版本的内置邮箱校验正则都没有做过变更,只要你没有自定义覆盖过默认的email校验逻辑,直接复用该正则即可保证多场景下的校验逻辑完全一致。
内容的提问来源于stack exchange,提问作者Eldar S
相关产品推荐
相关产品推荐

