获取重复 GET 变量的查询字符串值

Mil*_*dia 1 javascript jquery get query-string

我已经看到如何使用 Javascript 和 jQuery 解析查询字符串信息(GET 变量)。这里有两个不同的例子(我一直更喜欢第二个):

如何在 JavaScript 中获取查询字符串值?

jquery 从 URL 获取查询字符串

问题是我有一个查询字符串,其中包含两个相同的 GET 变量(它们都称为“搜索”)。当我从第一个答案运行该函数时,它只返回“搜索”GET 变量的第一个实例,而第二个答案只返回最后一个“搜索”GET 变量。一个示例查询字符串是:

http://www.example.com?search=this&search=that
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,在这个线程中有一个似乎可以解决这个问题的答案:

https://gist.github.com/kares/956897

但我不知道如何用它的编写方式来实现它。我基本上正在寻找一个函数,它可以解析查询字符串并返回与特定 GET 变量匹配的所有(如果有)值(在本例中为“搜索”;在上面的示例中,它将返回“这个”和“那个” )。

谢谢你的帮助!

Rob*_* M. 5

这应该可以解决问题:

var params = location.search.substr(1).split('&'),
    results = {};

for(var i = 0; i < params.length; i++)
{
    var temp = params[i].split('='),
        key = temp[0],
        val = temp[1];

    results[key] = results[key] || [];
    results[key].push(val);
}

console.log(results); // { search: ["a", "b"] }
Run Code Online (Sandbox Code Playgroud)