📜  如何使用 js 删除参数 - Javascript (1)

📅  最后修改于: 2023-12-03 15:23:56.115000             🧑  作者: Mango

如何使用 JS 删除参数 - Javascript

在 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

如果您使用的是现代浏览器,可以使用 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 对象的方法。