不能使用javascript删除参数

can't remove parameter using javascript

本文关键字:删除 参数 javascript 不能      更新时间:2023-09-26

我有一个这样的url

test.html?dir=asc&end_date=2016-09-23&order=created_at&start_date=2016-08-14

我想用下面的javascript

删除参数
function removeParam(uri) {
   uri =  uri.replace(/([&'?]start_date=*$|start_date=*&|[?&]start_date=(?=#))/, '');
   return uri.replace(/([&'?]end_date=*$|end_date=*&|[?&]end_date=(?=#))/, '');
}

但它没有工作,有人知道这是怎么回事吗?

在现代浏览器中你可以很简单地做到这一点

var x = new URL(location.origin + '/test.html?dir=asc&end_date=2016-09-23&order=created_at&start_date=2016-08-14');
x.searchParams.delete('start_date');
x.searchParams.delete('end_date');
var uri = x.pathname.substr(1) + x.search; // substr(1) because you don't have a leading / in your original uri

至少,我认为它更简单

您的RegExp不匹配!

如果你想删除end_date,你应该:

uri.replace(/(end_date=)([^*&]+)/, 'end_date=')

等等