JSFiddle - React, Tailwind, and code Playground
by kontrach
JavaScript
/*
function queryStringToObject(queryString) {
var tempString = queryString;
var obj = {};
var subString, signAnd, signEqual, keyOfObj;
var defineTypeOf = function(keyOfObj) {
//debugger;
if (keyOfObj == 'false') {
return keyOfObj = Boolean(false);
} else if (keyOfObj == 'true') {
return keyOfObj = Boolean(true);
} else if (isNaN(+keyOfObj)) {
return keyOfObj = keyOfObj;
} else {
return keyOfObj = +keyOfObj;
}
}
for (var i = 0; i < tempString.length; i++) {
//debugger;
signAnd = tempString.indexOf("&");
if (signAnd === -1) {
subString = tempString;
tempString = "";
} else {
subString = tempString.substring(0, signAnd)
};
signEqual = subString.indexOf("=");
obj[decodeURIComponent(subString.substring(0, signEqual))] = defineTypeOf(decodeURIComponent(subString.substr(signEqual + 1, subString.length)));
tempString = tempString.substr(signAnd + 1, tempString.length);
}
return obj;
}
*/
function queryStringToObject(str){
var o = {},
params = str.split('='),
tempF;// = new Function('return ' + params[1]);
try{
tempF = new Function('return ' + params[1]);
o[params[0]] = tempF(); // eval(params[1]);
} catch(e) {
o[params[0]] = unescape(params[1]);
}
return o;
}
console.log( queryStringToObject('phrase=mama%20mila%20ramu') );
console.log( queryStringToObject("user=false") );
console.log( queryStringToObject("user=[1,3,44,4,4,4,4]") );
console.log( queryStringToObject("user=123") );
console.log( queryStringToObject("user=12+3") );