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]) : {};

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

参考链接 Query String      querystring 模块的使用

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

此方法已更新至文章  Lodash使用入门

参考链接   lodash文档

你可能感兴趣的:(Url参数处理方法(js,querystring,lodash))