javascript解析URL中的参数——返回对象

版权声明:转载需注明来源 https://blog.csdn.net/Xiao_Spring/article/details/78867639

需求

在同域的不同前端页面跳转或者不同域前端页面跳转时,可以通过参数传递一些数据,比如下面我们在某度搜索“location.search”:

这里写图片描述

输入:一个包含参数的URL地址
输出:一个含有所有参数的对象

代码

目前有两种解决方案

方案1

const getURLParameters = url =>
url.match(/([^?=&]+)(=([^&]*))/g)
.reduce((a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {}
);

效果

这里写图片描述

方案2(更易懂一些)

const parseQueryString = url=>{
     var json = {};
     var arr = url.substr(url.indexOf('?') + 1).split('&');
    arr.forEach(item=>{
        var tmp = item.split('=');
                 json[tmp[0]] = tmp[1];
    });
    return json;
}

效果

这里写图片描述

一点思路

灵活运用浏览器自带的location属性 可以节省数据传递的复杂度
又:一些保密性强的参数,建议使用https域名或者其他加密方式传递。

猜你喜欢

转载自blog.csdn.net/Xiao_Spring/article/details/78867639