邮箱校验不必追求覆盖所有 RFC 特殊写法。下面这条 ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ 覆盖绝大多数真实邮箱。
默认正则
/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/
匹配常见邮箱:@ 前为字母数字与 . _ % + -,@ 后为域名,最后是至少 2 位字母的顶级域。
RFC 5322 允许大量特殊写法,但绝大多数真实邮箱都很规整。工程上通常使用“够用且可读”的简化正则。
@ 前允许字母、数字以及 . _ % + - 等常见字符;@ 后为域名标签,点号分隔,最后一段顶级域至少 2 个字母。
该规则不覆盖带引号的本地部分、IP 字面量域名等罕见形式;如需严格校验,应结合邮件确认链接而非仅靠正则。
user@example.coma.b+c@sub.example.cnname_01@test.orguser@@example.comuser@exampleuser example@test.comQ:为什么 user@example 不匹配?
缺少顶级域。规则要求域名后必须有一个点号加至少两位字母,例如 .com / .cn。
Q:支持中文邮箱吗?
当前规则仅支持 ASCII。中文国际化邮箱需要 punycode 编码后再校验。
Q:如何从一段文本中提取所有邮箱?
去掉 ^ 与 $,或把整条规则放进捕获组,然后在“提取”工作模式中选择该组。
Q:这条正则足够严格吗?
用于前端提示足够;涉及账号安全时,应以发送验证邮件的方式确认真实性。