如何用数组或自动匹配实现用户脚本在序列域名运行?
匹配序列域名(example1.com到example1255.com)的解决方案
嘿,完全懂你的痛点——手动写上千个域名判断太折磨人了!下面两个方案都能帮你自动匹配这类序列域名,直接嵌入现有JS文件就行,不用额外工具:
方案1:正则表达式匹配(简洁高效)
直接用正则精准匹配域名格式和数字范围,一步到位:
// 匹配example1.com ~ example1255.com的正则 const targetDomainRegex = /^example(?:[1-9]\d{0,2}|1[0-1]\d{2}|12[0-4]\d|125[0-5])\.com$/; if (targetDomainRegex.test(document.location.host)) { // 这里执行修改背景的逻辑 document.body.style.background = "#e6f7ff"; }
正则说明:
^和$确保完全匹配整个域名,避免误匹配类似example1.com.cn的情况- 分组里的规则分别覆盖:
[1-9]\d{0,2}:1-999的数字(1位、2位、3位)1[0-1]\d{2}:1000-1199的数字12[0-4]\d:1200-1249的数字125[0-5]:1250-1255的数字
方案2:拆分域名+数字范围判断(更易维护)
如果以后需要调整数字范围,这个方案修改起来更直观:
const currentHost = document.location.host; // 提取域名中的数字部分 const numMatch = currentHost.match(/^example(\d+)\.com$/); if (numMatch) { const domainNumber = parseInt(numMatch[1], 10); // 判断数字是否在1~1255区间内 if (domainNumber >= 1 && domainNumber <= 1255) { // 执行背景修改操作 document.body.style.background = "#fff5e6"; } }
优势:
- 逻辑清晰,哪怕是新手也能快速看懂
- 后续如果域名数字范围变更(比如扩展到example2000.com),只需要修改
>=1和<=1255这两个数值就行
这两个方案都不需要手动枚举所有域名,完全自动匹配,而且可以直接插入你现有的大型JS文件中,完美符合你的需求!
内容的提问来源于stack exchange,提问作者munzuradam
相关产品推荐
相关产品推荐

