首页 文章

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

提问于
浏览
0

此功能仅适用于参数 .

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

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

Alex共享链接中的功能如下所示

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, " "));
    };

我的网址是这样的:

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

我把它传递给函数:

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

它将param1返回为:luth?param2 = lagos而不是luth .

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

1 回答

  • 0

    您的网址应为: var url= 'search-results.html?param1=unth&param2=lagos';

    在这种情况下,功能将起作用 .

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

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

相关问题