最后添加到URL /

时间:2018-04-18 09:40:27

标签: javascript url

使用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;
}

4 个答案:

答案 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)




Here is a working DEMO

答案 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)

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>
&#13;
&#13;
&#13;