JS拼接URL字符串
Posted kbinblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS拼接URL字符串相关的知识,希望对你有一定的参考价值。
方法解析
- 使用encodeURIComponent进行编码,比如中文
- 考虑到对象是否还包含别的类型,如数组 对象
代码
function encodeSearchParams(obj)
const params = [];
Object.keys(obj).forEach((key) =>
let value = obj[key];
// 如果值为undefined置空
if (typeof value === 'undefined')
value = '';
//使用encodeURIComponent进行编码
if (Array.isArray(obj[key])) //类型为数组的时候
value.forEach(item =>
params.push([key, encodeURIComponent(item)].join('='));
);
if (Object.prototype.toString.call(obj[key]) === '[object Object]') //类型为对象的时候
Object.keys(obj[key]).forEach(item =>
params.push([key, encodeURIComponent(obj[key][item])].join('='));
)
else
params.push([key, encodeURIComponent(value)].join('='));
);
return params.join('&');
let obj =
'username': 'zhangsan',
arr: ['a', 'b', 'c'],
obj: obj1: 'obj1', obj2: 'obj2'
;
let str = `$baseUrl?$encodeSearchParams(obj)`; //方法使用
// baseUrl = 'www.good.com'
//www.good.com?username=zhangsan&arr=a&arr=b&arr=c&arr=a%2Cb%2Cc&obj=obj1&obj=obj2
具体思想如上 需根据实际应用
以上是关于JS拼接URL字符串的主要内容,如果未能解决你的问题,请参考以下文章