使用jQuery;在最后一个 /
之后向网址添加内容例如将促销添加到:
/性别/类别/品牌/
所以它变成了:
/性别/类别/品牌/的销售
然而,由于URL的生成和构建方式,我不能总是说“将其添加到URL的末尾”,因为有时会出现查询字符串,例如:
/性别/类别/品牌/的集合=短&安培;颜色=红色
我无法弄清楚如何在最终 / 之后添加促销,并且总是在?查询字符串之前添加
通过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;
}
答案 0 :(得分:1)
在香草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);
答案 1 :(得分:1)
在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)

答案 2 :(得分:1)
另一种方法是,使用.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]||"")
处理没有查询字符串的情况。
答案 3 :(得分:1)
将substring
与lastIndexOf
一起使用。
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>
&#13;