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

URL内容高级校验:IPFS环境检测通配符匹配及字符数验证问题

问题修复方案

第一个判断失效问题修复

你原写法的问题在于,JavaScript的indexOf()方法仅支持精确字符串匹配,语法"ba"*".ipfs."中的*是算术乘法运算符,字符串做乘法运算会返回NaN,导致判断逻辑完全失效。
要实现类似Shell通配符的匹配效果,使用正则表达式的test()方法即可,修正后的代码如下:

// 匹配ba开头、任意字符结尾后接.ipfs.的场景
if(/ba.*\.ipfs\./.test(window.location.href)) {
    alert("Alert: IPFS!");
}

新增CID长度校验功能实现

如果要验证子域名模式下,https://之后、.ipfs.之前以ba开头的CID长度为59位,可以用正则分组捕获目标段后做长度判断,代码示例:

const ipfsSubdomainReg = /^https:\/\/(ba[a-z0-9]+)\.ipfs\./i;
const matchResult = window.location.href.match(ipfsSubdomainReg);
if (matchResult) {
    const cid = matchResult[1];
    // 校验长度是否为59位
    if (cid.length === 59) {
        console.log('CID长度校验通过,值为:', cid);
        alert("Alert: IPFS!");
    } else {
        console.log('CID长度不合法,实际长度:', cid.length);
    }
}

代码优化建议

你当前的三个判断逻辑重复度较高,可以合并为一个正则判断,简化代码:

// 同时匹配子域名模式和路径模式的IPFS场景
const ipfsReg = /(ba.*\.ipfs\.|\/ipfs\/(Qm|ba))/i;
if(ipfsReg.test(window.location.href)) {
    alert("Alert: IPFS!");
}

内容的提问来源于stack exchange,提问作者dani 'SO learn value newbies'

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:54:03