【问题标题】:Remove Portion of Query String based on a variable parameter value [duplicate]根据可变参数值删除部分查询字符串[重复]
【发布时间】:2017-10-18 16:53:07
【问题描述】:

我正在使用以下代码(在此post 的帮助下)删除包含“all”的查询字符串参数?

转:

https://www.foobar.com/page?year=all&language=all&gender=female 进入 https://www.foobar.com/page?gender=female

如何修改代码以使用变量而不是“/all/”?我希望能够轻松切换要删除的参数。

现有代码(工作但无变量):

let src = "https://www.foobar.com/page?year=all&language=all&gender=female";
let url = new URL(src);
let re = /all/;
let props = [...new URLSearchParams(url.search)]
            .filter(([key, prop]) => !re.test(prop));
url = url.origin + url.pathname;
let params = new URLSearchParams();
props.forEach(([key, prop]) => params.set(key, prop));
url += "?" + params.toString();

新代码(不工作)

let parametervariable = "/somefoovariable/";
let src = "https://www.foobar.com/page?year=all&language=all&gender=female";
let url = new URL(src);
let re = parametervariable;
let props = [...new URLSearchParams(url.search)]
            .filter(([key, prop]) => !re.test(prop));
url = url.origin + url.pathname;
let params = new URLSearchParams();
props.forEach(([key, prop]) => params.set(key, prop));
url += "?" + params.toString();
 variable):**

新代码给出以下错误:“Uncaught TypeError: re.test is not a function”

【问题讨论】:

  • 什么是variable
  • @guest271314 已添加。
  • 可以使用RegExp构造函数

标签: javascript regex query-string


【解决方案1】:

你可以使用RegExp构造函数

let parametervariable = "somefoovariable";
let re = new RegExp(parametervariable);

【讨论】:

  • @Sam 您是否希望正斜杠成为RegExp 的一部分? /all/RegExp 文字。 new RegExp("all") 导致 /all/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2017-12-26
  • 2017-03-01
  • 2021-05-05
相关资源
最近更新 更多