我已经看过如何使用Javascript和jQuery解析查询字符串信息(GET变量)。这里有两个不同的例子(我总是更喜欢第二个):
How can I get query string values in JavaScript?
jquery get querystring from URL
问题是我有一个查询字符串,它有两个相同的GET变量(它们都被称为'搜索')。当我从第一个答案运行函数时,它只返回'search'GET变量的第一个实例,第二个答案只返回最后一个'search'GET变量。示例查询字符串将是:
http://www.example.com?search=this&search=that
我做了一些搜索,这个帖子中有一个似乎可以解决这个问题的答案:
https://gist.github.com/kares/956897
但我不知道如何用它的编写方式来实现它。我基本上正在寻找一个函数,它可以解析查询字符串并返回与特定GET变量匹配的所有(如果有的话)值(在本例中为'search';在上面的示例中,它将返回'this'和'that' )。
感谢您的帮助!
答案 0 :(得分:4)
这应该可以解决问题:
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"] }
答案 1 :(得分:0)
//读取页面的GET URL变量并将其作为关联数组返回。
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
if(typeof vars[hash[0]]=='undefined'){
vars.push(hash[0]);
vars[hash[0]] = [hash[1]];
}else{
vars[hash[0]].push(hash[1]);
}
}
return vars;
}
您可以找到演示here