在最后一个'&'实例的javascript中拆分网址

时间:2011-10-31 19:59:15

标签: javascript regex

我在这个网站上看到了一堆网址分割技术,但可以找到我需要的技术。

我需要切断最后一个参数。

即。 http://www.website.com/Pages/SearchResultsPage.aspx?k=website&cs=This%20Site&u=http%3A%2F%2Fwww.website.com%2FOur-Commitment

http://www.website.com/Pages/SearchResultsPage.aspx?k=website&cs=This%20Site

网址并不总是相同,因此解决方案必须以某种方式搜索最后一个“&”剥掉它。

我设法做到这一点,但我希望减少行数:

rewriteURL();  

function rewriteURL() {
    var url = window.location;
    var urlparts = url.split(/[\s&]+/);
    var newURL = urlparts[0] + '&' + urlparts[1];
    window.location.href = newURL;
}  

4 个答案:

答案 0 :(得分:4)

function rewriteURL() {
  window.location.href = window.location.href.substring(0, window.location.href.lastIndexOf('&'));
}

答案 1 :(得分:3)

var loc = window.location + '';
var url = loc.substring(0, loc.lastIndexOf('&'));

window.location不是字符串。

答案 2 :(得分:1)

function rewriteURL() {
    var urlparts = window.location.href.split(/[\s&]+/);
    window.location.href = urlparts[0] + '&' + urlparts[1];
} 

(点是,这有多重要吗?)

我更担心的是,我担心参数顺序可能会改变,或者会有其他参数等等。更好地做到这一点并确定。

答案 3 :(得分:1)

@thejh的答案更好,但是为了一个有趣的单行:

var newLoc = location.href.split('&').slice(0,-1).join('&');
// "http://www.website.com/Pages/SearchResultsPage.aspx?k=website&cs=This%20Site"