Skip to content

Instantly share code, notes, and snippets.

@livoras
Created May 3, 2017 08:14
Show Gist options
  • Save livoras/d8a7a28a027ee83ebc52896062aca464 to your computer and use it in GitHub Desktop.
Save livoras/d8a7a28a027ee83ebc52896062aca464 to your computer and use it in GitHub Desktop.
Query string parser and manipulation.
function parseUrl (url) {
var a = document.createElement('a')
a.setAttribute('href', url)
var search = a.search
var query = {}
var kvs = search.split(/[\?&]/g)
kvs.forEach(function (kv) {
kv = kv.split('=')
if (kv.length === 2) {
query[kv[0]] = kv[1]
}
})
return {
get: function (k) {
return query[k]
},
set: function (k, v) {
query[k] = v
},
stringify: function () {
var i = 0
var search = ''
for (var key in query) {
var prefix = i === 0 ? '?' : '&'
search += prefix + key + '=' + query[key]
i++
}
return search
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment