js将url的?后面的参数转成对象

这篇博客介绍了如何解析和构建URL参数。通过示例代码展示了如何将URL中的查询字符串拆分成键值对,并将其转换为JSON对象,以及如何将对象转换回URL参数字符串。这些方法在前端开发中处理HTTP请求和响应时非常有用。

如下

链接后面的内容 “?id=wyyy&pwd=123456”
处理代码
	const path = url.split('?')[1];
	const urlres= path.replace(/&/g, '","').replace(/=/g, '":"');
	const reqDataString = '{"' + urlres + '"}';
	const query = JSON.parse(reqDataString);
或者
打印结果

打印的结果
或者

function getParams(url) {
      var pms= {};
      if (url.indexOf('?') != -1) {
        var temp1 = url.split('?');
        var pram = temp1[1];
        var keyValue = pram.split('&');
        for (var i = 0; i < keyValue.length; i++) {
          var item = keyValue[i].split('=');
          var key = item[0];
          var value = item[1];
          pms[key] = value;
        }
      }
      return pms;
    }

把对象转为url参数

 //用&拼接对象成字符串
function getParams(params) {
        let paramStr = '';
        Object.keys(params)
            .forEach((item) => {
                if (paramStr === '') {
                    paramStr = `${item}=${params[item]}`;
                } else {
                    paramStr = `${paramStr}&${item}=${params[item]}`;
                }
            });
        console.log(paramStr);
        return paramStr;
    }

    //使用
    let params={a:1,b:2}
    getParams(params) //输出:a=1&b=2

HTTP URL 中问号(`?`)后面的部分称为查询参数(Query Parameters),也被称为查询字符串(Query String)。它用于向服务器传递额外的参数信息,通常以键值对的形式表示,多个参数之间使用 `&` 符号分隔[^1]。 例如,在 URL `http://example.com/page?name=John&age=30` 中,问号后面的部分 `name=John&age=30` 就是查询参数。其中,`name` 和 `age` 是参数名,`John` 和 `30` 是对应的参数值。 查询参数的主要用途包括: - **过滤数据**:例如,`http://api.example.com/data?filter=active`,表示请求过滤后的活动数据。 - **分页控制**:例如,`http://example.com/results?page=2`,表示请求第二页的结果。 - **排序与排序方向**:例如,`http://example.com/items?sort=date&order=desc`,表示按日期降序排列。 - **搜索功能**:例如,`http://example.com/search?query=keyword`,表示搜索关键词。 - **跟踪与分析**:例如,营销链接中常用 `http://example.com/landing?utm_source=newsletter`,用于跟踪流量来源。 在 Web 开发中,后端框架如 Flask、Django 等提供了便捷的方法来解析这些参数前端 JavaScript 也可以通过 `window.location.search` 或正则表达式来提取和处理这些参数。 例如,在 Flask 中,可以通过 `request.args.get("parameter_name")` 获取查询参数的值;而在 JavaScript 中,可以通过 `window.location.search` 获取查询字符串,并进一步解析。 ### 示例代码:使用 JavaScript 解析 URL 查询参数 ```javascript function getQueryParams() { const search = window.location.search || window.location.hash.split('?')[1] || ''; const params = new URLSearchParams(search); const result = {}; for (const [key, value] of params.entries()) { result[key] = value; } return result; } // 示例 URL: http://example.com/page?name=John&age=30 const params = getQueryParams(); console.log(params); // 输出: { name: "John", age: "30" } ``` 该函数可以提取当前页面 URL 中的查询参数换为对象形式,便于在前端进行进一步处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值