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

Posted

技术标签:

【中文标题】如何使用 javascript 替换以前的 URL 参数?【英文标题】:How to replace previous URL parameters using javascript? 【发布时间】:2019-07-14 21:57:45 【问题描述】:

我有这个函数来获取和替换我的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/?&amp;page=2

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

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

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

【问题讨论】:

How to get the value from the GET parameters? 和 How can I get query string values in javascript? 的可能重复 检查重复项。使用URLURLSearchParams 而不是手动拆分和循环。像这样:new URL( window.document.URL).searchParams.get(paramName) 【参考方案1】:

您可以同时使用?&amp; 的拆分来获取所有参数,然后按照您的逻辑处理它们。

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

【讨论】:

以上是关于如何使用 javascript 替换以前的 URL 参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中替换不在href标签内的URL

如何使用 JavaScript 检查页面的 URL [重复]

重定向到新网址,但从历史记录中删除以前的网址

JavaScript 替换当前URL的部分并转到它

javascript 用URL替换状态

用javascript替换URL中的参数值