获取url的各个参数的值
思路
由于下面的代码用的是简写的方式 为了所有人都能看得懂 或者说即使看不懂 看到思路 根据思路也能实现、
所以写了以下的个人思路 有不好的 请私信我 对于私信的人 感激不尽 因为的你私信会让小编更上一层楼
- 定义一个url地址(就是确定要 解析的url地址)
- 定义一个方法用来解析参数
- 方法:先创建一个对象,用于存放参数的键值对
- 方法:先判断传入的参数是否为空 为空 直接返回一个空对象,不为空 进行解析
- 方法:使用split方法把 ? 符号之前的数据剔除
- 方法:使用split方法把数据以 & 作为切割点 切割成数组
- 方法:使用forEach对切割好的数组进行遍历
- 方法:再次使用split方法 把遍历的每一项 以 = 进行分割 分割成的数组的第一项作为 key 属性 第二项作为 value 属性 存放到之前定义好的 空对象中
- 方法:返回这个对象
具体实现代码
1 | // 定义一个需要传递的URL |
2 | const url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu' |
3 | /* |
4 | * str =>需要解析的url |
5 | * 返回的是一个解析好的对象 |
6 | * { |
7 | f: "8" |
8 | ie: "utf-8" |
9 | rsv_bp: "1" |
10 | tn: "baidu" |
11 | } |
12 | */ |
13 | const qureyUrlParams = function (str) { |
14 | const objStr = {} |
15 | str && str.split('?')[1].split('&').forEach(item => objStr[item.split('=')[0]] = item.split('=')[1]); |
16 | return objStr |
17 | } |
18 | console.log(qureyUrlParams(url)); |
相信 以上面写的思路,大家都能看的非常明白
但是:小编觉得这不是最好的解决方案,最好的解决方案是用正则表达式来进行解析。
正则表达式 的解决方案 详见 小编的 正则表达式 里面的案例
如果能够帮助到你,是小编最大的荣幸
当然 有 不好的地方 请大家帮忙指出 学习永无止境
小编一直认为 人外有人 天外有天 一起学习 共同进步
让我们共同加油吧!!!
原文作者: Yunjie Ge
原文链接: http://www.blog.geyunjie.com/2018/05/12/qureyUrlParams/
版权声明: 转载请注明出处(必须保留作者署名及链接)