Skip to content

Instantly share code, notes, and snippets.

@simkimsia
Created April 28, 2014 13:45
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simkimsia/11372570 to your computer and use it in GitHub Desktop.
Save simkimsia/11372570 to your computer and use it in GitHub Desktop.
able to convert query string like ?q=abc&g[]=1&g[]=2 into a javascript object (params) which has 2 params q & g. The params.q will be 'abc' string while params.g will be an array containing the value 1, 2
RegExp.quote = function(str) {
return (str+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
}
function getSearchParameters() {
var prmstr = window.location.search.substr(1);
return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {};
}
function transformToAssocArray( prmstr ) {
var params = {};
var newParam = tmparr[0];
var pattern = '[]';
var arrayRegExp = new RegExp(RegExp.quote(pattern), 'g');
if (tmparr[0].match(arrayRegExp)) {
newParam = tmparr[0].replace(arrayRegExp, "");
if (typeof params[newParam] == 'undefined') {
params[newParam] = new Array();
}
params[newParam].push(tmparr[1]);
} else {
params[tmparr[0]] = tmparr[1];
}
}
var params = getSearchParameters();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment