js url参数转对象类型(对象类型转url参数)支持中文解码编码

先上代码 后面上函数参数说明以及调用返回结果

/*
 * @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": "成都"}

总有天会用到 欢迎收藏~
有帮助到大家 麻烦给博🐖点点赞~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

词不达意难知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值