2011-08-05 71 views
0

可以说我有以下网址;jquery删除部分网址

http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7 

正如你所看到的,我有两个语言层,我只想从中删除第二个URL。所以我期望的网址是这样的。

http://www.domain.com/en-US/assortment/category/page.aspx?sub=GROUP7 

由于技术的限制,我没有任何其他的方法来修改网址。这可以通过jQuery或Javascript来实现吗?如果是,如何?

回答

2
'your url here...'.replace('/assortment/en-US/category/', '/assortment/category/'); 
+0

有时候很简单。我所要做的只是检查更具体一点。谢谢! – Rob

+0

简单但有效;) –

1

查看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); 

我并没有真正花时间做这个吸尘器 - 我会在几分钟内清理。

+0

试过了,但似乎没有工作。它只取代en-US的第一次出现。我想替换第二个事件,而不是第一个事件。 – Rob

0

因为您指的是语言代码,我会编写一个JavaScript代码来捕获通用语言代码并替换重复。

你可以用正则表达式轻松做到这一点。检查了这一点

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("") 

连接方法内的参数是必不可少的。

这应该适用于目前正在使用的大多数语言代码。