Примечание - Нет сомнений в том, что указанное выше решение работает, но оно не охватывает все операторы
Думаю, вы захотите что-то вроде этого -
var search = location.search;
var trimmedSearch = search.substring(1);
var searchObj = trimmedSearch?JSON.parse(
'{"' + trimmedSearch.replace(/&/g, '","').replace(/=/g,'":"') + '"}',
function(key, value) {
return key===""?value:decodeURIComponent(value)
}
)
:
{}
console.log(searchObj);
ex -
Переопределить поиск @ 1-ая строка с
search = "abc=foo&def=%5Basf%5D&xyz=5&foo=b%3Dar";
Выходные данные
Object {abc: "foo", def: "[asf]", xyz: "5", foo: "b=ar"}