Skip to content

Instantly share code, notes, and snippets.

@juanbrujo
Created August 29, 2016 12:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juanbrujo/fbc26b73fdad17605b5ba7d5922b44e4 to your computer and use it in GitHub Desktop.
Save juanbrujo/fbc26b73fdad17605b5ba7d5922b44e4 to your computer and use it in GitHub Desktop.
getAllUrlParams.js
/**
* getAllUrlParams( @url );
* url: https://www.sitepoint.com/get-url-parameters-with-javascript/
*/
function getAllUrlParams(url) {
var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
var obj = {};
if (queryString) {
queryString = queryString.split('#')[0];
var arr = queryString.split('&');
for (var i=0; i<arr.length; i++) {
var a = arr[i].split('=');
var paramNum = undefined;
var paramName = a[0].replace(/\[\d*\]/, function(v) {
paramNum = v.slice(1,-1);
return '';
});
var paramValue = typeof(a[1])==='undefined' ? true : a[1];
paramName = paramName.toLowerCase();
paramValue = paramValue.toLowerCase();
if (obj[paramName]) {
if (typeof obj[paramName] === 'string') {
obj[paramName] = [obj[paramName]];
}
if (typeof paramNum === 'undefined') {
obj[paramName].push(paramValue);
} else {
obj[paramName][paramNum] = paramValue;
}
}
else {
obj[paramName] = paramValue;
}
}
}
return obj;
}
// USE:
// getAllUrlParams('http://example.com/?product=shirt&color=blue&newuser&size=m').product
// => 'shirt'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment