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

正则表达式:URL顶级域名白名单配置及重复TLD匹配排查

解决URL特定TLD白名单过滤的正则问题

首先分析你当前正则的核心问题:原表达式^https:\/\/[^\/]+\.my-site\.com|cloud\/?.*?$使用了|分隔两个独立匹配规则,导致只要URL中包含cloud/就会被误判,完全忽略了前缀的域名约束。你尝试添加的{1}是冗余操作,因为分组本身只会匹配一次,无法解决结构错误带来的问题。

修正后的正则表达式

^https:\/\/[^\/]+\.my-site\.(com|cloud)(?:\/|$|\?|#).*$

正则各部分解析

  • ^https:\/\/:严格匹配URL开头的HTTPS协议
  • [^\/]+:匹配.my-site之前的域名前缀,确保不会包含路径分隔符/,限定在域名范围内
  • \.my-site\.(com|cloud):精准匹配.my-site.后接白名单内的TLD(com或cloud)
  • (?:\/|$|\?|#):非捕获分组,限定TLD之后必须是路径起始符/、URL结尾、查询参数?或锚点#,彻底避免后续出现重复TLD的情况
  • .*$:匹配TLD之后的任意合法URL内容(路径、参数等)

测试验证

在JavaScript中使用test方法验证:

const validRegex = /^https:\/\/[^\/]+\.my-site\.(com|cloud)(?:\/|$|\?|#).*$/;

// 误匹配示例:返回false(符合预期)
console.log(validRegex.test('https://qa.my-site.cloud.cloud/check-this-out?check-it-out=true'));

// 合法URL:返回true
console.log(validRegex.test('https://qa.my-site.com/check-this-out'));
console.log(validRegex.test('https://prod.my-site.cloud?param=1'));
console.log(validRegex.test('https://dev.my-site.com'));

内容的提问来源于stack exchange,提问作者S. C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:57:20