JSFiddle - React, Tailwind, and code Playground
by Joshua
JavaScript
function getQueryParams(inp, out, parts, part, level, de){
level=out={},
parts=[].slice.call(inp.replace(/\+/g,' ').match(/[^\[\]=&]+|&|=/g)),
de=decodeURIComponent;
while(part=parts.shift())
part=='&'?
level=out:
parts[0]=='='?
(parts.shift(),level[de(part)]=de(parts.shift())):
level=level[de(part)]={};
return out;
}
function getQueryParams(a,b,c,d,e,f){e=b={},c=[].slice.call(a.replace(/\+/g,' ').match(/[^\[\]=&]+|&|=/g)),f=decodeURIComponent;while(c.s=c.shift,d=c.s())d=='&'?e=b:c[0]=='='?(c.s(),e[f(d)]=f(c.s())):e=e[f(d)]={};return b}
var params = getQueryParams('key1&key2=value&key3[A+%2B+B]=A+%2B+B');
console.log(JSON.stringify(params)); // {"key1":{},"key2":"value","key3":{"A + B":"A + B"}}