2012-11-05 57 views
0

我想找到一個更簡單的方法來更改當前網址上的2個變量,而不必拆分網址並重新構建它。簡單的方法來改變當前的網址

例如,如果我有一個網址http://www.anysite.com/any/12/this/url/10/20,並希望到最後變成變量10202030的例子有比使用window.location.href.split("/")則不必重新構建整個URL更簡單的方法?

+0

重建將是唯一的辦法,雖然也有替代品'分裂()'。 –

+0

我想你可以使用正則表達式匹配函數來完成你想要的任務嗎?不確定 –

回答

0

你可以抓住它是一個字符串,然後修剪和追加,如你所見。

你可以抓住它作爲一個字符串,並使用搜索和替換。

你可以抓住它作爲一個字符串,並運行GREP反對它。

但是,老實說,可能是最簡單的做分割/數組的事情。

這一切都取決於您必須遵守的格式化規則。

0

您可以使用正則表達式:

var url = "http://www.anysite.com/any/12/this/url/10/20"; 
var newURL = url.replace(/10\/20$/, "20/30"); 

此正則表達式查找「​​10/20」的URL的結束,以及「20/30」替換它。根據你想要做替換的具體情況,你可以稍微調整一下正則表達式來允許或禁止某些情況。

2

隨着正則表達式函數替換:

url.replace(/([0-9]*)\/([0-9]*)$/, function(str , n1 , n2){ 
    var new_n1 = 10 + parseInt(n1 , 10); 
    var new_n2 = 10 + parseInt(n2 , 10); 
    return new_n1 + '/' + new_n2; 
}); 

這取代了具有格式的字符串的一部分:[編號]/[數],並且是在字符串「URL」的端部(因爲在模式結尾處有一個$),其格式爲:[數字+10]/[數字+10]。

+0

+1是否提供動態解決方案。你應該用一個右括號關閉你的替換調用。 – cbayram

+0

完成:)謝謝 – Gael

0

好的,這是一個你可以使用的功能。

function amendHref(a, b) { 

    var str = window.location.href; 

    var newHref = str.replace(/[\d]+\/[\d]+$/, a + "/" + b); 
    //       ^^^^^   digit one or more times 
    //        ^^  (escaped) forward slash 
    //         ^^^^ digit one or more times 
    //         ^end of string 

    window.location.href = newHref; 
} 

小提琴here

相關問題