js parse url

by Oliver Kelso

JavaScript

function parseUrl(url){
        
        var parser = document.createElement('a'),
            searchObject = {},
            queries, split, i;

        // Let the browser do the work
        parser.href = url;

        // Convert query string to object
        queries = parser.search.replace(/^\?/, '').split('&');
        
        for( i = 0; i < queries.length; i++ ) {
            split = queries[i].split(/=(.+)?/);
            searchObject[split[0]] = decodeURIComponent(split[1]);
        }

        return {
            protocol: parser.protocol,
            host: parser.host,
            hostname: parser.hostname,
            port: parser.port,
            pathname: parser.pathname,
            search: parser.search,
            searchObject: searchObject,
            hash: parser.hash
        };
        
    }

//console.log(parseUrl("http://www.test.com:2020/index.php?test=true&wtf=yes"));

console.log(parseUrl("http://ensighten.ccnag.com/no-content?cg_n=Rewards&cg_s=ItemDetail&z_channel=desktop&z_sessionId=ae125006-b15c-49e1-b75f-6d156f9f1d48&z_items=52554_1;&z_auth=1&z_click=1&tz=-7&bh=17&ul=en-US&cd=24&sr=1920x1080&jo=Yes&ti=Item%20Detail%20-%20%247%2C500%20VISA%C2%AE%20Reward%20Card%20%7C%20My%20Coke%20Rewards&js=Yes&jv=1.5&ct=unknown&bs=1920x378&fv=17.0&slv=Unknown&tv=10.2.1&dl=0&ssl=0&es=www.mycokerewards.com%2Frewards%2F%247%2C500-VISA%25C2%25AE-Reward-Card%2F52554&vt_f_tlh=1428623575&vtvs=1428621894679&vtid=ead2bd07-5bbf-4b4b-bdee-91e5d7a25522&co_f=ead2bd07-5bbf-4b4b-bdee-91e5d7a25522&dcssip=www.mycokerewards.com&dcsuri=%2Frewards%2F%247%2C500-VISA%25C2%25AE-Reward-Card%2F52554&dcsdat=1428624906092&dcsref=http%3A%2F%2Fwww.mycokerewards.com%2Frewards%2Fbronze-T1%3FuserSortSelected%3Dtrue%26sorts%3DMP%26view%3Dflat%26pageNumber&pset=1428624908333"));