添加到最后一个 / 之后的 URL



使用 jQuery; 在最后一个/之后向 url 添加内容

例如,将销售添加到:

/性别/类别/品牌/

所以它变成了:

/性别/类别/品牌/销售

但是,由于 URL 的生成和构建方式,我不能总是说"将其添加到 URL 的末尾",因为有时末尾有查询字符串,例如:

/性别/类别/品牌/?系列=短&颜色=红色

我只是想不通如何在最终/之后添加销售,并且总是在?query 字符串之前(如果存在)。

通过 stackoverflow 搜索,我看到了一些关于在最后一个之后提取内容的内容/但不是这个,这可能吗?我真的很感激帮助解决这个问题。

编辑 - 解决方案

也感谢大家的帮助,但我能够最容易地调整 Shree 的答案,这完成了我需要的:

if(window.location.href.indexOf("sale") > -1) {
} else {
var raw = window.location.href;
var add = 'sale';
var rest = raw.substring(0, raw.lastIndexOf("/") + 1);
var last = raw.substring(raw.lastIndexOf("/") + 1, raw.length);
var newUrl = rest + add + last;
window.location.href = newUrl;
}

substringlastIndexOf一起使用。

var raw = '/gender/category/brand/?collection=short&colour=red';
var add = 'sale';
var rest = raw.substring(0, raw.lastIndexOf("/") + 1);
var last = raw.substring(raw.lastIndexOf("/") + 1, raw.length);
var newUrl = rest + add + last;
console.log(newUrl);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

在vanilla javascript中

var a = "/gender/category/brand/?collection=short&colour=red";
var lastIndexPosition = a.lastIndexOf('/');
a = a.substring(0,lastIndexPosition+1)
+"sale"
+a.substring(lastIndexPosition+1 , a.length);
console.log(a);

通过在 Javascript 中使用可重用函数

您可以使用lastIndexOf并获取last '/' index位置并将新数据附加到该位置。

lastIndexOf() 方法返回最后一次出现的位置 字符串中的指定值。

  • 使用它,您可以将任何参数发送到函数中,因为它是可重用的。

function insert(main_string, ins_string, pos) {
return main_string.slice(0, pos) + ins_string + main_string.slice(pos);
}
var url = "/gender/category/brand/?collection=short&colour=red"
url = insert(url, 'sale', url.lastIndexOf("/") + 1)
console.log(url)

这是一个有效的演示

另一种选择,使用.split("?")?处分开,然后将它们组合回来,例如:

// Example with querystring
var url = '/gender/category/brand/?collection=short&colour=red'
var parts = url.split("?");
var newurl = parts[0] + "sale" + "?" + (parts[1]||"")
console.log(newurl)
// Test without querystring
var url = '/gender/category/brand/'
var parts = url.split("?");
var newurl = parts[0] + "sale" + (parts[1]||"")
console.log(newurl)

(parts[1]||"")处理没有查询字符串的情况。

最新更新