一步到位js对象和querystring查询字符串互转(get/url参数)

需要注意的是微信小程序环境不支持URLSearchParams类和URL类。。。

当然,这个问题有很多解决方式,这里说一种最简洁的方式:

对象转querystring查询字符串(get/url参数)

我看网上的方法都比较繁琐,其实可以直接使用js的URLSearchParams对象一步到位:

1 (new URLSearchParams(obj)).toString();
2 
3 // test
4 console.log((new URLSearchParams({page: 'seekhub_collector', nav: 'data', size: '10', p: '1'}).toString());
5 // 'page=seekhub_collector&nav=data&size=10&p=1'

querystring查询字符串转对象

如果拿到的是完整的网址比如location.href

var url = new URL('https://www.domain.cn/qrcode/test?to=video');
url.searchParams.get('to');
// video

如果只是一段类似?to=video的querystring这个就需要自己实现了

 1         function getQueryObject(url){
 2             var query = url.split('?')[1];
 3             var res = {};
 4 
 5             querys = query.split('&');
 6             querys.forEach(query => {
 7                 var item = query.split('=');
 8                 res[item[0]] = item[1]; // 当然如果有中文/Unicode字符可以在这里用URIencode方法转码一下
 9             });
10 
11             return res;
12         }

 

posted @ 2022-08-08 00:25  我的五年  阅读(2711)  评论(0)    收藏  举报