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

如何让正则仅匹配含单个点的SLD+TLD格式域名?

修正域名匹配正则,限制仅单个点

你当前的正则只是允许字母、数字、点、连字符组成3-63长度的字符串,没限制点的数量,所以会匹配多个点的无效域名。要精准匹配仅含二级域名(SLD)和顶级域名(TLD)的单点点域名,需要把正则拆成「合法SLD+单个点+合法TLD」的结构,同时保证整体长度合规。

修正后的正则表达式

var re = new RegExp("^(?=.{3,63}$)[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?$");

各部分规则说明

  • (?=.{3,63}$):正向预查,确保整个域名总长度在3-63字符之间,符合域名长度规范。
  • [A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?:匹配合法的SLD或TLD:
    • 开头必须是字母/数字,不能用连字符或点;
    • 中间可包含字母、数字、连字符;
    • 结尾必须是字母/数字,避免以连字符收尾;
    • 支持单字符的SLD或TLD(比如a.com、example.a)。
  • \\.:转义后的点,强制整个域名中仅存在一个点。

测试效果

  • 匹配合法域名:mozilla.com、my-site.net、123.xyz、a.b
  • 拦截无效域名:mozzila....net(多个点)、.com(开头是点)、example.(结尾是点)、-test.com(SLD以连字符开头)、test-.com(SLD以连字符结尾)、长度超63的超长域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:05:41