url获取?后面所有拼接的参数

在页面传值的时候,经常使用到方法就是url后面通过?拼接参数,再结合&可以实现多个参数的传递,例如

http://www.test.com?a=123&b=xyz&b=456

传参不难,只需要按照格式拼接起来,难点在于如何获取拼接好的参数,以上面为例,也就是获取?a=123&b=xyz&c=456这部分内容

使用window.location.search!对,原生的这个api可以获取到?以及后面的参数值,但是不友好的地方在于获取的是字符串,给我们这么一坨东西没用啊,我们需要的东西在这字符串之中,所以我们需要处理一下这个字符串,处理成什么格式做好用呢?对象!

因为在js中,万物皆对象~这里就给大家罗列两种方法(当然不止两种,还有很多方式可以处理,找到一两种好理解,好记忆,灵活处理各种问题的方法才是硬道理)

第一种(推荐)

使用replace()和queryString.parse();

replace()方法可以使用其他的代替,目的是去掉字符串中的?

// http://www.test.com?a=123&b=xyz&b=456
//先引入
import queryString from 'querystring';

const url=window.location.search;
const data=url.replace('?', '');
const param = queryString.parse(data);

//最后结果
param = {
    a:'123',
    b:['xyz','456']
}

//合并
const param= queryString.parse(url.replace('?', ''));

第二种 (推荐)

使用一个非常好用的api-----URLSearchParams

// http://www.test.com?a=123&b=xyz&c=456

const params=new URLSearchParams(location.search);

//最后结果想获取那个参数直接get
const a = params.get("a") // 123
const b = params.get("b") // xyz
const c = params.get("b") // 456

第三种(可行) 

split拆分法

function GetRequest() {
    var url = location.search; //获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
        }
    }
    return theRequest;
}
var Request = new Object();
Request = GetRequest();

// var 参数1,参数2,参数3,参数N;
// 参数1 = Request['参数1'];
// 参数2 = Request['参数2'];
// 参数3 = Request['参数3'];
// 参数N = Request['参数N'];

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]中的代码,可以使用`request.args.get`方法来获取URL路径中`?`后面参数的值。例如,如果URL路径为`http://example.com?password=nio123456!A`,则可以使用`request.args.get("password", True)`来获取参数`password`的值,即`nio123456!A`。 另外,根据引用\[2\]中的代码,可以使用`getParams`函数将对象转换为URL参数。该函数会将对象的键值对使用`&`符号拼接成字符串。例如,如果有一个对象`params`,其中包含键值对`{a:1, b:2}`,则可以使用`getParams(params)`来将其转换为字符串`a=1&b=2`。 最后,根据引用\[3\]中的代码,可以使用`split`方法和正则表达式来处理URL路径中`?`后面参数。具体的处理代码可以参考引用中的示例。 综上所述,根据不同的需求和具体的代码实现,可以使用不同的方法来获取URL路径中`?`后面参数。 #### 引用[.reference_title] - *1* [Flask系列之:获取url路径中?后面参数的值](https://blog.csdn.net/zhengzaifeidelushang/article/details/123566981)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [jsurl的?后面参数转成对象](https://blog.csdn.net/Red_sevenWord/article/details/122999097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值