利用a标签获取url 域名,参数 关键字

创建一个a标签,将需要的url赋值给url    (a为什么会有这些属性,还没有搞明白,希望知道的大神能解释一下)

function parseURL(url) {
                var a =  document.createElement('a');
                a.href = url;
                return {
                    source: url,
                    protocol: a.protocol.replace(':',''),
                    host: a.hostname,
                    port: a.port,
                    query: a.search,
                    file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
                    params: (function(){
                        var ret = {},
                            seg = !!a.search?a.search.replace(/\?/,'').split('&'):url.split(/\?/)[1].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;
                    })(),
                    hash: a.hash.replace('#',''),
                    path: a.pathname.replace(/^([^\/])/,'/$1'),
                    relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
                    segments: a.pathname.replace(/^\//,'').split('/')
                    
                };
            }



parseURL('http://localhost:8080/#/stuInformation?id=1&userName=demo');

解析结果

利用a标签获取url 域名,参数 关键字

注意:如果url中有hash(#) 使用a.search 获取不到url的参数部分 因为search只能取到?后面和#之前的内容 如果#之前没有 search取值为空