Skip to content

Instantly share code, notes, and snippets.

@dsdstudio
Created June 29, 2016 09:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dsdstudio/c6856bc69387864882127b076e116908 to your computer and use it in GitHub Desktop.
Save dsdstudio/c6856bc69387864882127b076e116908 to your computer and use it in GitHub Desktop.
url parsing 연습
function parseUrl(url) {
var tokens = /\?([\S]*)/.exec(url);
if ( tokens === null ) return {};
var urlToken = tokens[0].indexOf('#') !== -1 ? tokens[1].substring(0, tokens[1].indexOf('#')) : tokens[1];
var params = urlToken.split('&').reduce(function(obj, v) {
var tokens = v.split('='),
k = tokens[0],
v = tokens[1];
if ( obj[k] ) {
if ( Array.isArray(obj[k]) ) obj[k].push(v);
else {
obj[k] = [obj[k]];
obj[k].push(v);
}
} else obj[k] = v;
return obj;
}, {});
return {
baseUrl:'',
params:params
};
}
var pureUrl = 'http://asdf.com';
var hashUrl = 'http://asdf.com#hash';
var hashWidhParameterUrl = 'http://asdf.com?a=1&b=2&c=3#hash';
var paramUrl = 'http://asdf.com?a=2&b=2&b=3';
console.log(pureUrl, parseUrl(pureUrl));
console.log(hashUrl, parseUrl(hashUrl));
console.log(hashWidhParameterUrl, parseUrl(hashWidhParameterUrl));
console.log(paramUrl, parseUrl(paramUrl));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment