📅  最后修改于: 2023-12-03 15:23:56.115000             🧑  作者: Mango
在 Web 开发中,我们常常需要通过 URL 传递参数。但有时候我们又需要删除某些参数,那么该怎么做呢?今天我来介绍一下如何使用 JavaScript 删除 URL 中的参数。
下面这个函数会删除指定名称的参数:
function removeParam(key, sourceURL) {
if (!sourceURL) {
sourceURL = window.location.href;
}
var rtn = sourceURL.split("?")[0],
param,
params_arr = [],
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
if (queryString !== "") {
params_arr = queryString.split("&");
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
param = params_arr[i].split("=")[0];
if (param === key) {
params_arr.splice(i, 1);
}
}
rtn = rtn + "?" + params_arr.join("&");
}
return rtn;
}
这个函数的实现原理是使用正则表达式将指定的参数从 URL 中删除。
使用方法:
var newUrl = removeParam("keyToRemove", "http://www.example.com/index.html?keyToRemove=valueToRemove");
console.log(newUrl); // 输出 http://www.example.com/index.html
如果您使用的是现代浏览器,可以使用 URLSearchParams 对象来删除 URL 中的参数。下面是一个例子:
function removeParam(key, sourceURL) {
if (!sourceURL) {
sourceURL = window.location.href;
}
var url = new URL(sourceURL);
var params = new URLSearchParams(url.search);
params.delete(key);
url.search = params.toString();
return url.toString();
}
使用方法:
var newUrl = removeParam("keyToRemove", "http://www.example.com/index.html?keyToRemove=valueToRemove");
console.log(newUrl); // 输出 http://www.example.com/index.html
上述两种方法都可以使用 JavaScript 删除 URL 中的参数。如果您的项目需要在古老的浏览器上运行,可以使用正则表达式的方法。如果您运行的是现代浏览器,可以选择使用 URLSearchParams 对象的方法。