邮箱正则测试器
复制经过测试的邮箱正则(简单、实用、HTML5 或严格),逐行校验地址列表,并获取 JavaScript、Python、PHP 或 Java 的代码。
每一行在测试前都会去掉首尾空白,空行会被跳过。
测试使用 JavaScript 正则表达式运行;代码片段把该规则转换为 JavaScript 版本。
| 行 | 输入 | 结果 | 失败原因 |
|---|---|---|---|
| 1 | john.doe@example.com | 有效 | |
| 2 | jane_smith+news@mail.co.uk | 有效 | |
| 3 | user@localhost | 无效 | 域名中没有点(如 .com) |
| 4 | not-an-email | 无效 | 没有 @ 符号 |
| 5 | a..b@example.com | 有效 | |
| 6 | name@domain.c | 无效 | 最后一个点之后的部分必须是 2 个以上的字母 |
邮箱正则会在你接受注册或发送消息之前,判断哪些字符串看起来像是邮箱地址。这个工具提供四种严格程度递增的现成规则和一个提取器,会用你选的规则测试你粘贴的每一行,说明每个失败的行为什么失败,并写出对应的 JavaScript、Python、PHP 或 Java 代码。
使用方法
- 选择一种规则——实用适合大多数表单;严格增加了 RFC 5321 的长度和点号规则。
- 每行粘贴一个地址,或选择“从任意文本中查找邮箱”,然后粘贴网页、日志或 CSV。
- 查看“有效”和“无效”的数量,以及每个失败行给出的原因。
- 选择语言并复制代码片段。
计算公式
实用:^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$
@ 之前:字母、数字以及 . _ % + -。之后:包含一个点、并以至少两个字母结尾的域名。HTML5 规则就是浏览器对 <input type="email"> 所应用的规则;它在 @ 之前允许更多符号,并且不要求域名中有点。严格规则用两个先行断言,把 @ 之前的部分限制在 64 个字符以内、整个地址限制在 254 个字符以内,并禁止以点开头或结尾以及连续的点。严格规则只是有限的 dot-atom 规则,不是完整的 RFC 校验器。不同语言的空白字符类不同,请在目标运行环境中测试非 ASCII 空白。表格最多显示 400 行或 400 个匹配。
示例
默认列表有六行。使用实用规则时,三行通过:john.doe@example.com、jane_smith+news@mail.co.uk 和 a..b@example.com。user@localhost 失败(域名中没有点),not-an-email 没有 @,name@domain.c 以单个字母的顶级域结尾。切换到 HTML5 后有五行通过,因为浏览器规则接受只有一级的域名、单个字母的结尾以及本地部分的连续点。严格规则只让两行通过,因为它还会拒绝 a..b@example.com 中连续的点。
常见问题
有完美的邮箱正则吗?
没有。完整的邮箱语法包含带引号的本地部分和地址字面量,这些规则有意省略了它们。任何正则都无法判断邮箱是否真实存在,请用验证链接来确认所有权。
为什么 HTML5 规则接受 user@localhost?
HTML 标准允许只有一级的主机名。实用和严格规则要求带点的域名,但匹配成功仍然不能证明该域名或邮箱真实存在。
支持国际化的邮箱地址吗?
这些 ASCII 规则不支持 Unicode 本地部分。简单规则更宽松。HTML5 接受 ASCII punycode 域名标签;严格规则还允许 xn-- 开头的顶级标签。实用规则要求结尾只有字母,所以会拒绝 punycode 顶级域名。
比较邮箱地址时应该不区分大小写吗?
域名不区分大小写。RFC 5321 要求保留 @ 之前本地部分的大小写,因为接收系统可能认为它有意义。除非有特定服务商的规则,否则请保留提交时的本地部分。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/email-regex-tool/
引用此工具
kakaoCalc. (2026, November 8). 邮箱正则测试器. https://kakao.mobile/zh/tools/email-regex-tool/
“邮箱正则测试器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/email-regex-tool/.