2010-03-02 105 views
3

我有一個像/admin/editblogentry?page=3&color=blueJavaScript正則表達式URL改變

一個URL我要改變的「頁」的網址爲1,這樣的網址將成爲

/admin/editblogentry?page=1&color=blue 

什麼是完成最好的辦法這使用JavaScript?

回答

1
var s="/admin/editblogentry?page=3&color=blue" 
var re=/(.*page=)(\d+)(&.*)*/ 
s.replace(re,"$11$3") 
0
location.href=location.href.replace(/page=3/,'page=1') 
1

假設URL只包含一個數字(即頁碼),這是最簡單的正則表達式:

"/admin/editblogentry?page=3&color=blue".replace(/\d+/, 10001) 
1

另一種方式來做到這一點。

function changePage (url, newPage) { 
    var rgx=/([?&]page=)\d+/; 
    var retval = url.replace(rgx, "$1" + newPage); 
    return retval; 
} 

var testUrls = [ 
    "name?page=123&sumstuff=123", 
    "/admin/editblogentry?page=3&color=blue", 
    "name?foo=bar123&page=123" 
]; 

for (var i=0; i<testUrls.length; i++) { 
    var converted = changePage(testUrls[i], i); 
    alert(testUrls[i] + "\n" + converted); 
}