【问题标题】:Change value of query parameter using jQuery [duplicate]使用jQuery更改查询参数的值[重复]
【发布时间】:2019-05-14 08:12:28
【问题描述】:

我需要使用 jQuery 更改给定 URL 中存在的查询参数的值。

有 2 个可能的 URL,

www.domain.com/?id=10&name=xxx

www.domain.com/?name=xxx&id=10

我需要将此 URL 中的参数 id 的值更改为 www.domain.com/?id=15&name=xxx 之类的值。正则表达式似乎是解决这个问题的方法,但它看起来让我感到困惑。

可能的解决方案:

选择 "id=""&" 之间的字符串(或)从 "id=" 到字符串末尾的字符串并将其替换为所需的值 15。

有人对此有解决方案或任何其他更好的解决方案吗?

提前致谢!

【问题讨论】:

  • 如果你用谷歌搜索你的标题,你会得到很多问题的答案
  • 我当然做到了。但似乎没有一个是确切的解决方案。
  • 你看过URLSearchParams吗?对于原生不支持它的浏览器,甚至还有一个 JS polyfill
  • 您的问题不清楚。您要更改的 URL 在哪里?它是您正在运行的页面的实际 URL 吗?是<a> 中的href 吗?此外,您还需要确切地告诉我们您想要什么,而不是“类似...” 您所说的是否意味着您希望将www.domain.com/?id=10&name=xxxwww.domain.com/?name=xxx&id=10 都更改为www.domain.com/?id=15&name=xxx ?您真的关心订单是什么(订单可能很重要,但通常不重要。您只是没有告诉我们您真正想要什么)?
  • 鼓励编辑问题以改进它们(例如澄清、添加其他信息等)鼓励。但是,编辑问题以将其更改为导致答案无效的不同问题,违反了 Stack Overflow 的政策。您在此处的编辑就是这样做的。该政策是其他用户应主动恢复此类更改。我在这里这样做了。 我们鼓励您ask a new Question,或许可以提供指向此链接的链接以获取更多上下文。我们想提供帮助,但您的新问题/其他问题必须是新问题。

标签: javascript jquery string query-parameters


【解决方案1】:

你为什么不使用简单的替换?

var newUrl = location.href.replace("id="+10, "id="+15);

我从an answer 找到了这个问题的解决方案 Change url query string value using jQuery(标记为重复)。

【讨论】:

  • 但我不知道值“10”,因为它是随机的。我该如何处理?
【解决方案2】:

var url="www.domain.com/?id=10&name=xxx";
changeUrl("id",15);
changeUrl("name","sumesh");
function changeUrl(key,value){
  var patt = new RegExp(key+"=[a-zA-Z0-9]+");
  var matches = patt.exec(url);
  var id2 = matches[0];
  url = url.replace(id2, key+'='+value);
  console.log(url);
}

使用RegExp 来实现这一点。

【讨论】:

  • 参数“id”只是一个例子。我需要通用正则表达式,它也必须适合更改参数“名称”。
  • 泛型意味着如何?是否要更改整个查询字符串?
  • 你已经给出了整数的正则表达式。考虑我有一个接受参数和值的函数。如果我通过 (id, 15) 或 (name, yyy) 这个方法应该可以工作。
  • 至少使用[0-9]+,或者更好,只是character class \d+
  • @VinothKumar 这不是你的问题所要求的。如果你想要这样,那么你需要在在你的问题中并且在人们回答之前。您将需要创建一个新问题来询问您似乎想要的概括,因为更改问题以使答案无效是违反政策的。
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 2021-09-07
  • 1970-01-01
相关资源
最近更新 更多