如何在字符串的指定文本后插入值?URL特定位置追加内容实现方法
你可以通过字符串替换或者正则匹配的方式实现,不需要依赖URL的位置索引,以下是可直接运行的实现代码:
基础实现(目标文本唯一时优先用)
核心逻辑是把你指定的目标文本/api/直接替换为/api/ha/,不管域名和后续路径怎么变都可以正常生效:
function insertAfterTargetText(url, targetText = '/api/', insertContent = 'ha') { return url.replace(targetText, `${targetText}${insertContent}/`); } // 测试用例 const url1 = 'www.website.com/api/test1/test2'; const url2 = 'www.website.test.com/api/test1/test2/test3'; const output1 = insertAfterTargetText(url1); const output2 = insertAfterTargetText(url2); console.log(output1); // www.website.com/api/ha/test1/test2 console.log(output2); // www.website.test.com/api/ha/test1/test2/test3
增强实现(避免误匹配)
如果担心域名中碰巧出现和目标文本一样的内容,可以用正则精准匹配路径段的目标文本:
function insertAfterTargetText(url, targetText = '/api/', insertContent = 'ha') { const reg = new RegExp(`(${targetText})`); return url.replace(reg, `$1${insertContent}/`); }
如果需要插入其他内容,或者指定其他的目标文本位置,直接修改传入的targetText和insertContent参数即可。
内容的提问来源于stack exchange,提问作者Bravo
相关产品推荐
相关产品推荐

