正则匹配解析Url字符串参数
分享一个方法,用来解析url参数,/search/u1s2s3q4k2
常用在筛选搜索相关页面。
- url:
/search/u1s2s3q4k2
- 需求把 u1s2s3q4k2解析成一个参数对象
{ k : [ '2' ] , q : [ '4' ] , s : [ '2' , '3' ] , u : [ '1' ] }
方法如下:
//字符串为
let url = u1s2s3q4k2
let obj = url
.match(/[a-z]+\d+/g)
.map((e) => e.split(/(?=(\d+)$)/))
.reduce((a, [k, v]) => {
a[k] || (a[k] = []);
a[k].push(v);
return a;
}, {});
console.log(obj) //{ k : [ '2' ] , q : [ '4' ] , s : [ '2' , '3' ] , u : [ '1' ] }