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

关于修改邮箱验证正则表达式以强制主机名包含句点的技术咨询

如何修改正则表达式以强制邮箱主机名包含句点?

嗨,我来帮你搞定这个正则调整的问题~你的现有正则已经完美覆盖了除第7条之外的所有验证规则,唯独没法拦截像abc@efg这种没有域名后缀的邮箱地址对吧?别担心,只需要对主机名部分做一处微小修改就能解决。

修改思路

原正则的主机名部分允许0个带句点的子段(也就是可以只有纯字符串的主机名),我们只需要把这个“可选匹配”改成“至少匹配一次”,就能强制主机名包含至少一个句点。

修改后的完整正则

/^(?=.{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])?)+$/

关键修改点对比

  • 原主机名末尾的匹配规则:(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(*表示0次或多次,允许无句点)
  • 修改后的规则:(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(+表示1次或多次,强制至少一个句点)

验证效果

调整后,这个正则会:

  • 正常通过符合所有规则的邮箱,比如valid.user@sub.domain.com
  • 拦截abc@efg这类无句点的主机名
  • 保留原有的所有验证逻辑:用户名不能以.开头/结尾、用户名长度≤64、完整邮箱长度≤254、主机名以字母/数字开头且不以.结尾、主机名单段长度≤63等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:22:48