JavaScript 用于检索多个查询字符串值的函数

JavaScript function for retrieving multiple querystring values

此函数仅对一个参数有效。

function getQueryStringValue(key) {
   debugger;
   return unescape(window.location.search.replace(new RegExp("^(?:.*[&\?]" + escape(key).replace(/[\.\+\*]/g, "\$&") + "(?:\=([^&]*))?)?.*$", "i"), ""));
};

我需要一个 JavaScript 函数可以检索多个查询字符串参数,我需要将参数的名称作为键传递给函数。谢谢

linkAlex分享的功能如下


    function getParameterByName(name, url) {
        if (!url) {
            url = window.location.href;
        }
        name = name.replace(/[\[\]]/g, "\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    };

我的 url 是这样的:




       var url= 'search-results.html?param1=unth?param2=lagos';

然后我将其传递给函数:


     var param1 = getParameterByName('param1');
     var param2 = getParameterByName('param2');

它return param1 as : luth?param2=lagos 而不是 luth。

这和我分享的功能有同样的问题。 我的问题是 JavaScript 检索多个查询字符串参数的函数,但该函数仅适用于一个参数

您的 URL 应该是: var url= 'search-results.html?param1=unth&param2=lagos';

在这种情况下函数将起作用。

var param1 = getParameterByName('param1'); //return unth

var param2 = getParameterByName('param2'); //return lagos