美文网首页技术干货让前端飞前端开发
将url的查询参数解析成字典对象

将url的查询参数解析成字典对象

作者: Mr夜空 | 来源:发表于2017-01-01 12:45 被阅读0次

    这个题目不约而同的出现在了多家公司的面试题中,当然也是因为太过于典型,解决方案无非就是拆字符或者用正则匹配来解决,我个人强烈建议用正则匹配,因为url允许用户随意输入,如果用拆字符的方式,有任何一处没有考虑到容错,就会导致整个js都报错。而正则就没有这个问题,他只匹配出正确的配对,非法的全部过滤掉,简单,方便。

    实现代码:

    function getQueryObject(url){
        url = url == null? window.location.href : url;
        var search = url.substring(url.lastIndexOf("?") + 1);
        var obj = {};
        var reg = /([^?&=]+)=([^?&=]*)/g;
        search.replace(reg,function(rs,$1,$2){
            var name = decodeURIComponent($1);
            var val = decodeURIComponent($2);
            var = String(val);
            obj[name] = val;
            return rs;
        });
        return obj;
    }
    

    相关文章

      网友评论

        本文标题:将url的查询参数解析成字典对象

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