JavaScript替换查询字符串中的值

4

可能是重复的问题:
add or update query string parameter

我想无论数字是什么,都将查询字符串中的页码替换为1。

查询字符串

index.php?list&page=2&sort=epub

JavaScript

window.location.href.replace(new RegExp("/page=.*?&/"), "page=1&")

问题是什么来着? - Martin Ender
1
这个问题看起来非常熟悉。 - Lightness Races in Orbit
我在思考http://stackoverflow.com/questions/13211588/javascript-replace-and-regex。 - Lightness Races in Orbit
1个回答

11

你的代码看起来差不多正确; 但是:

  • 你需要使用new RegExp或特殊的//正则表达式语法中的其中一种, 而不是两者都使用。
  • replace方法不会直接修改原始字符串, 它只返回一个修改过的副本。
  • 我认为比起.*?, 写\d+更有意义; 更精确的正则表达式通常在你没有考虑到的情况下不太可能出错。

因此, 把它们结合起来:

window.location.href = window.location.href.replace(/page=\d+/, "page=1");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接