Skip to content

Instantly share code, notes, and snippets.

@paranoidjk
Created October 25, 2016 07:15
Show Gist options
  • Save paranoidjk/5d2c164a87011bc8ef15f2a49acd0e0a to your computer and use it in GitHub Desktop.
Save paranoidjk/5d2c164a87011bc8ef15f2a49acd0e0a to your computer and use it in GitHub Desktop.
use browser api to parse uri for you
// This function creates a new anchor element and uses location
// properties (inherent) to get the desired URL data. Some String
// operations are used (to normalize results across browsers).
 
function parseURL(url) {
    var a =  document.createElement('a');
    a.href = url;
    return {
        sourceurl,
        protocola.protocol.replace(':',''),
        hosta.hostname,
        porta.port,
        querya.search,
        params(function(){
            var ret = {},
                seg = a.search.replace(/^?/,'').split('&'),
                len = seg.length, i = 0, s;
            for (;i<len;i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file(a.pathname.match(//([^/?#]+)$/i) || [,''])[1],
        hasha.hash.replace('#',''),
        patha.pathname.replace(/^([^/])/,'/$1'),
        relative(a.href.match(/tps?://[^/]+(.+)/) || [,''])[1],
        segmentsa.pathname.replace(/^//,'').split('/')
    };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment