Javascript jquery删除url的一部分
假设我有以下urlJavascript jquery删除url的一部分,javascript,jquery,replace,Javascript,Jquery,Replace,假设我有以下url http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7 如您所见,url中有两个语言层,我只想从中删除第二个语言层。所以我希望url是这样的 http://www.domain.com/en-US/assortment/category/page.aspx?sub=GROUP7 由于技术限制,我没有任何其他方法来修改url。这可以通过jQuery或Javascript实现吗?如果
http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7
如您所见,url中有两个语言层,我只想从中删除第二个语言层。所以我希望url是这样的
http://www.domain.com/en-US/assortment/category/page.aspx?sub=GROUP7
由于技术限制,我没有任何其他方法来修改url。这可以通过jQuery或Javascript实现吗?如果是,怎么做?检查JavaScript函数
好的,使用replace函数,您可以执行以下操作:
var url= "http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7";
var index = url.lastIndexOf('en-US'); //get last index of language
var substr = url.substr(index); //get substring of the tail
var newsubstr = substr.replace('en-US',''); //use replace to get rid of second lang
var newurl = url.substr(0,index-1); //first part of the url
var cleanurl = newurl + newsubstr; //concatenate it
alert(cleanurl);
我真的没有花时间把它弄干净——我会在几分钟内把它清理干净。因为你指的是一个语言代码,我将编写一个javascript代码来捕获通用语言代码并替换重复的代码
'your url here...'.replace( '/assortment/en-US/category/', '/assortment/category/');
使用正则表达式可以很容易地做到这一点。看看这个
url = "http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7"
//define regular expression to catch /en-US block
// '/' in front of the language code is also catch in this regular expression
rxp = /(\/[\w]{2}(-[\w]{2})?)/
//split by regular expression
ary = url.split(rxp)
//set the fourth eliment to "" the 4th eliment is the second '/en-US'
ary[3] = ""
//join array with "" to have the prepare the string
url_new = ary.join("")
join方法中的参数是必需的
这应该适用于目前使用的大多数语言代码 已经试过了,但似乎不起作用。它只会取代第一次出现的en-US。我想替换第二种情况,而不是第一种。有时候它很简单。我所要做的就是检查得更具体一点。谢谢