先上代码 后面上函数参数说明以及调用返回结果
/*
* @Author: 夏林
* @Date: 24.6.27
* @desc url参数转对象
* @params params -> 传入数据 String | Object
* @params _needEncode -> 是否需要编码 默认 true
*/
export function dealUrlSearchParams(_params = '', _needEncode = true) {
const isUrlStr = !(_params instanceof Object);
isUrlStr && _params.includes('?') && (_params = (new URL(_params)).search);
const paramsVM = new URLSearchParams(_params);
!_needEncode && paramsVM.forEach((v, k) => paramsVM.set(k, decodeURIComponent(v)));
if (isUrlStr) return Object.fromEntries(paramsVM);
return _needEncode ? String(paramsVM) : decodeURIComponent(paramsVM);
}
对象转url参数调用示范
const testItem = {
name: "tom",
age: 18,
city: "成都"
};
// 对象转url参数
dealUrlSearchParams(testItem);
// result -> name=tom&age=18&city=%E6%88%90%E9%83%BD
// 不进行中文编码
dealUrlSearchParams(testItem, false);
// result -> name=tom&age=18&city=成都
url参数转对象
const urlStr = 'https://www.baidu.com?name=tom&age=18&city=%25E6%2588%2590%25E9%2583%25BD'
// url参数转对象
dealUrlSearchParams(urlStr);
// result -> { "name": "tom", "age": "18", "city": "%E6%88%90%E9%83%BD"}
// 不进行中文编码
dealUrlSearchParams(urlStr, false);
// result -> { "name": "tom", "age": "18", "city": "成都"}
总有天会用到 欢迎收藏~
有帮助到大家 麻烦给博🐖点点赞~