You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写不允许以.mil结尾的邮箱地址正则验证规则

禁止.mil后缀邮箱的表单校验正则

最终可用正则

# 支持负向后顾断言的现代正则引擎可用(推荐,逻辑更直观)
^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(?<!\.mil)$

# 兼容不支持负向后顾的旧引擎版本
^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@(?!.*\.mil$)[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$

规则拆解

通用邮箱格式部分(两段正则共用)

  • ^:匹配字符串起始位置,避免邮箱前有多余字符时漏校验
  • [_a-zA-Z0-9-]+:匹配邮箱前缀的基础字符,允许大小写字母、数字、下划线、横杠,至少出现1次
  • (\.[_a-zA-Z0-9-]+)*:匹配邮箱前缀中的点分隔分段,*代表该分段可以出现0次或多次,兼容a.b.c@xxx.com这类带点的前缀格式
  • @:匹配邮箱固定分隔符@
  • [a-zA-Z0-9-]+:匹配域名的首段内容,允许大小写字母、数字、横杠
  • (\.[a-zA-Z0-9-]+)*:匹配域名的多级后缀,支持.com、.com.cn这类多级域名格式
  • $:匹配字符串结束位置,避免邮箱后有多余字符时漏校验

排除.mil后缀的核心规则

  • 推荐版规则(?<!\.mil):负向后顾断言,校验字符串结束前的内容不是.mil,直接排除所有以.mil结尾的输入
  • 兼容版规则(?!.*\.mil$):负向前瞻断言,放在@符号之后,校验@后的所有内容不会以.mil结尾,实现相同的拦截效果

校验效果验证

  • 放行示例:test@example.com、user.name@org.gov、admin@sub.domain.net
  • 拦截示例:officer@army.mil、staff@us.navy.mil、test@mil

内容的提问来源于stack exchange,提问作者audreywrong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:15:03