Javascript正则表达式URL更改

时间:2010-03-02 04:12:02

标签: javascript regex

我有一个像/admin/editblogentry?page=3&color=blue

这样的网址

我想将网址中的“页面”更改为1,以便网址变为

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

使用javascript实现此目的的最佳方法是什么?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

假设URL只包含一个数字(即页码),这是最简单的正则表达式:

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

答案 2 :(得分: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);
}

答案 3 :(得分:0)

location.href=location.href.replace(/page=3/,'page=1')