【发布时间】:2014-10-08 13:01:37
【问题描述】:
我正在尝试创建一个函数来从 url 中删除特定的查询字符串及其值。
例如: 如果我有像
这样的网址var url = www.foo.com/test?name=kevin&gender=Male&id=1234
如果我通过 name -> 它应该删除 name 的键和值。网址应该变成
www.foo.com/test?gender=Male&id=1234
我有一个函数ReturnRefinedURL(key,url)
我在函数中这样做
function ReturnRefinedURL(key,url)
{
var Value = getParameterByName(key); // This returns kevin
var stringToBeRemoved = 'key +'='+ Value+'&'; // string becomes 'name=kevin&'
return url.replace(stringToBeRemoved, '');
}
//在谷歌上找到这个:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
所以当我调用方法ReturnRefinedURL('name',window.location.href);
这行得通!!!但是寻找一种更优雅,更简单的方法。
* 如果 name 参数是查询字符串中的第二个参数,这将不起作用。 ('&' 仍将保留)
【问题讨论】:
标签: javascript jquery html query-string