Created
May 10, 2017 03:20
-
-
Save bumaociyuan/2d984510ac176722c63350b641f40f0e to your computer and use it in GitHub Desktop.
https://www.sitepoint.com/get-url-parameters-with-javascript/ Quick Tip: Get URL Parameters with JavaScript
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; | |
} | |
} | |
} | |
return obj; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment