js解析url query_Url参数处理方法(js,querystring,lodash)

我们在处理url的跳转时,往往会在url后面带着很多参数。有时候需要把这些参数转化成对象当作参数进行跳转或其他之用,比如angular2的 routerLink的地址是不带参数的,参数写在 queryParams里,这时候就需要对url进行处理。RouterLink

当然可能还有其他地方可能会用到此类转换。

下面介绍对于url参数的几种转换方法

1.   js处理,利用split()和循环实现const url = "/content?a=10&b=2";

let  formattedParams = {};

const params  =  url.split("?")[1].split("&");

for ( let i = 0; i < params.length; i ++) {

formattedParams[params[i].split("=")[0]] = params[i].split("=")[1];

}

结果 { a: 10 , b :2}

2.  利用querystring

querystring是在node封装好的一个模块,有处理string的方法直接处理这种地址const querystring = require('querystring');

const url = "/content?a=10&b=2";

const params  =  url.split("?");

let  formattedParams = params.length >1 ? querystring.parse(params[1]) : {};

这种方法可以直接进行处理

3. 利用lodash处理const url = "/content?a=10&b=2";

const params  =  url.split("?");

let  formattedParams = params.length >1 ? _.chain(params[1])

.split("&")

.map(_.ary(_.partial(_.split,_,"="),1))

.fromPairs()

.value() : {}

结果也是正确的。

不过lodash不会,所以把别人提供的方法放在这,再来在细细研究lodash

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值