如何使用javascript替换以前的URL参数?

时间:2019-02-21 04:46:45

标签: javascript url

我具有此函数来获取和替换我的URL参数:

function getURLParameters(paramName) {
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0) {
        var arrParams = sURL.split("?");
        var arrURLParams = arrParams[1].split("&");
        var arrParamNames = new Array(arrURLParams.length);
        var arrParamValues = new Array(arrURLParams.length);

        var i = 0;
        for (i = 0; i < arrURLParams.length; i++) {
            var sParam = arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];
            if (sParam[1] !== "")
                arrParamValues[i] = unescape(sParam[1]);
            else
                arrParamValues[i] = "No Value";
        }

        for (i = 0; i < arrURLParams.length; i++) {
            if (arrParamNames[i] === paramName) {
                return arrParamValues[i];
            }
        }
        return "No Parameters Found";
    }

}

当我有这样的URL时,一切正常

https://example.com/?&page=2

但是现在,我的URL是这样的:

https://example.com/?&page=2&order=my_id&direction=ASC

我的function仍然将page=2替换为page=3等,但是其他值被附加附加到我的整个URL中。如何替换params中的所有URL

1 个答案:

答案 0 :(得分:0)

您可以同时使用?&拆分来获取所有参数,然后再通过逻辑对其进行处理。

const url = "https://example.com/?&page=2&order=my_id&direction=ASC"
console.log(url.split(/[\?\&]/))