根据可变参数值删除部分查询字符串
Remove Portion of Query String based on a variable parameter value
我正在使用以下代码(在此 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"
你可以使用RegExp
构造函数
let parametervariable = "somefoovariable";
let re = new RegExp(parametervariable);
我正在使用以下代码(在此 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"
你可以使用RegExp
构造函数
let parametervariable = "somefoovariable";
let re = new RegExp(parametervariable);