美文网首页
用 javascript 实现一个函数 parseUrl(url

用 javascript 实现一个函数 parseUrl(url

作者: 小强不是蟑螂啊 | 来源:发表于2019-04-19 17:17 被阅读0次

    题目:
    使用parseUrl函数, parseUrl("http://www.xiyanghui.com/product/list?id=123456&sort=discount#title");
    期望得到结果:

    {
    protocol: "http",
    host: "www.xiyanghui.com",
    path: "/product/list",
    params: {
    id: "12345",
    sort: "discount"
    },
    hash: "title"
    }
    这道题先生成成a标签,然后用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,   
            params: (() => {   
                var ret = {}, querys = []; 
                var searchQuery = a.search.replace(/^\?/,'').split('&');
                for ( var i = 0;i < searchQuery.length; i++) {   
                    if (searchQuery[i]) { 
                       querys = searchQuery[i].split('=');   
                       ret[querys[0]] = querys[1]; 
                    }  
                }   
                return ret;   
            })(),  
            file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],   
            hash: a.hash.replace('#',''),   
            path: a.pathname.replace(/^([^\/])/,'/$1'),   
            relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],   
            segments: a.pathname.replace(/^\//,'').split('/')   
       };   
    } 
    

    相关文章

      网友评论

          本文标题:用 javascript 实现一个函数 parseUrl(url

          本文链接:https://www.haomeiwen.com/subject/ilkcgqtx.html