为了账号安全,请及时绑定邮箱和手机立即绑定

根据位置替换 url 中的 GET 参数(正则表达式)

根据位置替换 url 中的 GET 参数(正则表达式)

心有法竹 2021-11-18 17:00:46
我想删除一个 url 的 GET 参数,网址采用以下格式:https://url.com?remove_parameter={VALUE}https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}我在找什么:https://url.comhttps://url.com?keep_parameter={VALUE}我寻找了正则表达式,但找不到正确的答案。有没有办法在 javascript 的替换函数中使用正则表达式来格式化这些 url?
查看完整描述

2 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

您可以在不使用正则表达式的情况下安全地执行此操作。


var url = new URL("https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}");


console.log(url.origin);


console.log("Before removal:");

url.searchParams.forEach(function(value, key){ console.log(key, value); });


url.searchParams.delete('remove_parameter');


console.log("After removal:");

url.searchParams.forEach(function(value, key){ console.log(key, value); });


console.log("Rebuild:");

console.log(url.toString());


查看完整回答
反对 回复 2021-11-18
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

也许,


[&?]remove_parameter={[^}]*}

用空字符串替换在这里可以正常工作。


const regex = /[&?]remove_parameter={[^}]*}/gm;

const str = `https://url.com?remove_parameter={VALUE}

https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}

http://url.com?remove_parameter={VALUE}

https://www.url.com?keep_parameter={VALUE}&remove_parameter={VALUE}`;

const subst = ``;

const result = str.replace(regex, subst);


console.log(result);

正则表达式电路

jex.im可视化正则表达式:

//img1.sycdn.imooc.com//6196166900018e2704540154.jpg

查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信