javascript - url地址拼接和获取参数

平常工作中,如果没有封装好的框架,获取url中的请求参数是很麻烦的一件事。

下列代码,解决了 “将对象的值拼接到Url” 和 “从Url获取参数转换为对象” 两个问题。

    /**
     * 拼接getUrl
     * @param url 地址
     * @param params 请求参数
     */
    Layers.prototype.toGetUrl = function (url, params) {
        var idx = url.indexOf('?');
        if (idx < 0) {
            url = url + '?';
        } else if(idx !== url.length - 1){
            if (url.charAt(url.length - 1) !== '&') {
                url = url + '&';
            }
        }
        for (var key in params) {
            if (params.hasOwnProperty(key)) {
                var v = params[key];
                if (v !== '') {
                    url += key + '=' + params[key] + '&';
                }
            }
        }
        return url;
    };
/**
 * 获取Url中的参数
 * @param url 地址
 */
Layers.prototype.getUrlParams = function (url) {
  let res = {}, idx = url.lastIndexOf('?');
  if (idx > 0) {
    let p = url.substring(idx + 1, url.length);

    // 兼容Vue工程,Vue项目中,允许这样的地址出现:http://www.baidu.com?name=min&age=16#eg1#eg2
    let idx = p.indexOf('#');
    if (idx > 0) {
      p = p.substring(0, idx);
    }

    let arr = p.split('&');
    for (let i = 0; i < arr.length; i++) {
      let a = arr[i].split('=');
      if (a.length > 1) {
        res[a[0]] = decodeURI(a[1])
      }
    }
  }
  return res;
};

posted on   疯狂的妞妞  阅读(17709)  评论(0编辑  收藏  举报

(评论功能已被禁用)
编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· 万字调研——AI生成内容检测
· 解决跨域问题的这6种方案,真香!
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示