gpt4 book ai didi

javascript - 在javascript中使用正则表达式删除查询字符串

转载 作者:行者123 更新时间:2023-12-03 07:19:19 24 4
gpt4 key购买 nike

我需要删除 REST API 调用附带的查询参数。以下是需要考虑的示例 URL。在每个 URL 中,我们需要删除“key”参数及其值。

  • /test/v1?key=keyval&param1=value1&param2=value2
  • /test/v1?key=keyval
  • /test/v1?param1=value1&key=keyval
  • /test/v1?param1=value1&key=keyval&param2=value2

去掉key参数后,最终的URL应该是这样的。

  • /test/v1?param1=value1&param2=value2
  • /测试/v1?
  • /test/v1?param1=value1
  • /test/v1?param1=value1=&param2=value2

我们使用下面的正则表达式在 php 中匹配和替换这个查询字符串。 ( https://regex101.com/r/pK0dX3/1 )

(?<=[?&;])key=.*?($|[&;])

我们不能在 java 脚本中使用相同的正则表达式。一旦我们在 java 脚本中使用它,它就会出现一些语法错误。你能帮我们找出同一个正则表达式的问题吗?我们如何更改此正则表达式以匹配和删除上述查询参数?

最佳答案

显然 Javascript 不支持 lookbehind,因此您的正则表达式将无法工作。

在 Javascript 中你可以这样使用:

repl = input.replace(/(\?)key=[^&]*(?:&|$)|&key=[^&]*/gmi, '$1');

RegEx Demo

正则表达式正在使用 正则表达式交替 处理 2 条路径:

  1. 如果此查询参数紧跟在 ? 之后,那么我们在参数之后抓取直到 & 并将 ? 放回原位。
  2. 如果此查询参数在 & 之后,则 &key=value 将替换为空字符串。

关于javascript - 在javascript中使用正则表达式删除查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30599133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com