Last active
July 5, 2018 05:34
-
-
Save dethbiscuit/cfe6a1df7419f8f11502aa15c6389963 to your computer and use it in GitHub Desktop.
[JS] Get all URL params
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getAllUrlParams(url) { | |
// get query string from url (optional) or window | |
var queryString = url ? url.split('?')[1] : window.location.search.slice(1); | |
// we'll store the parameters here | |
var obj = {}; | |
// if query string exists | |
if (queryString) { | |
// stuff after # is not part of query string, so get rid of it | |
queryString = queryString.split('#')[0]; | |
// split our query string into its component parts | |
var arr = queryString.split('&'); | |
for (var i = 0; i < arr.length; i++) { | |
// separate the keys and the values | |
var a = arr[i].split('='); | |
// in case params look like: list[]=thing1&list[]=thing2 | |
var paramNum = undefined; | |
var paramName = a[0].replace(/\[\d*\]/, function(v) { | |
paramNum = v.slice(1, -1); | |
return ''; | |
}); | |
// set parameter value (use 'true' if empty) | |
var paramValue = typeof(a[1]) === 'undefined' ? true : a[1]; | |
// (optional) keep case consistent | |
paramName = paramName.toLowerCase(); | |
paramValue = paramValue.toLowerCase(); | |
// if parameter name already exists | |
if (obj[paramName]) { | |
// convert value to array (if still string) | |
if (typeof obj[paramName] === 'string') { | |
obj[paramName] = [obj[paramName]]; | |
} | |
// if no array index number specified... | |
if (typeof paramNum === 'undefined') { | |
// put the value on the end of the array | |
obj[paramName].push(paramValue); | |
} | |
// if array index number specified... | |
else { | |
// put the value at that index number | |
obj[paramName][paramNum] = paramValue; | |
} | |
} | |
// if param name doesn't exist yet, set it | |
else { | |
obj[paramName] = paramValue; | |
} | |
console.log(obj); | |
} | |
} | |
return obj; | |
} | |
console.log(getAllUrlParams('http://totot.com?param1=hola').param1); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment