如何将param添加到JS中仅限路径的url中



我正试图将params添加到仅限路径的url中(因为我的代码中的其他地方计算出了来源(,但我在下面的代码中遇到了一个错误,因为它不认为它是有效的url。(编辑:还忘了添加路径url中存在"/checkout/"的检查(

function appendCountryParam(link, tag){
var url = new URL(link); 
url.searchParams.append('tag', tag); 
return url.href;
}

我想知道是否有一种干净的方法可以将params添加到仅限路径的url中。我自己写了一个函数,但它看起来有点过于复杂,我直接将代码从php翻译成了js。

function addTagParam(link, tag) {
if (!link.includes('/checkout/')) {
return link;
}
if (link.includes('?')) {
const removeSlash = link.replace(//$/, '');
return `${removeSlash}&tag=${tag}`;
}
const linkWithSlash = link.replace(//$|$/, '/');
return `${linkWithSlash}?tag=${tag}`;
}

编辑:我传递了一个仅限路径的url,我希望它以相同的格式返回,但带有指定的参数,所以类似于这样的内容:/page/user/winsome/?tag=true

像第二个例子中那样自己创建字符串是我的首选方法😀无需添加额外的复杂性,除非您有许多参数。

如果你真的想获得幻想,你可以附加一个URLSearchParams的实例(在你调用.toString之后(,就像这个答案一样。

最新更新