• Tips_url 字符串解析为 Object


    一. javascript 实现一个函数 parseUrl(url),将一段 url 字符串解析为 Object.

    eg:

    parseUrl("http://www.xiyanghui.com/product/list?id=123456&sort=discount#title");
    

    返回结果

    {
        protocol: "http",
        host: "www.xiyanghui.com",
        path: "/product/list",
        query: {
            id: "123456",
            sort: "discount"
        },
        hash: "title"
    }
    

      

     /**
         * 
         * @param {*} search a.search
         */
        function parseParams(search) {
            var ret = {};
            var searchArr = [];
            searchArr = search.replace(/^?/, '').split('&');
            for (let i = 0; i < searchArr.length; i++) {
                if (searchArr[i]) {
                    let querys = searchArr[i].split('=');
                    console.log(querys);
                    ret[querys[0]] = querys[1];
                }
            }
            return ret;
        }
        /**
         * 通过创建a标签
         * @param {*} url 
         */
        function parseUrl(url) {
            var a = document.createElement('a');
            a.href = url;
            return ({
                protocol: a.protocol,
                hostname: a.hostname,
                port: a.port,
                search: a.search,
                params: parseParams(a.search),
                hash: a.hash.replace('#', ''),
                path: a.pathname,
            })
        }
        var rest = parseUrl("http://www.xiyanghui.com/product/list?id=123456&sort=discount#title");
        console.log(rest);
        /**
         * 通过new URL
         * @param {*} url 
         */
        // IE12及以上兼容
        function parseUrlBynewUrl(url) {
            var url = new URL(url);
            return ({
                protocol: url.protocol,
                hostname: url.hostname,
                port: url.port,
                search: url.search,
                params: parseParams(url.search),
                hash: url.hash.replace('#', ''),
                path: url.pathname,
            })
        }
        var restt = parseUrlBynewUrl("http://www.xiyanghui.com/product/list?id=123456&sort=discount#title");
        console.log(restt);
    }
    

     

  • 相关阅读:
    C++ 知识回顾总结 -- queue 队列容器
    C++标准模板库(STL)之Stack
    c++优先队列(priority_queue)用法详解
    数组中超过一半的数
    【LeetCode】93. Restore IP Addresses 【面试题】
    atoi()和stoi()的区别----数字字符串的处理
    C++中substr函数的用法
    基本排序算法 【转载】
    平衡数
    python中Sting字符串
  • 原文地址:https://www.cnblogs.com/LinSL/p/11118697.html
Copyright © 2020-2023  润新知