获取地址栏参数 - queryString(正则表达式版本)

获取所有query string

复制代码
function queryStringAll(src){
    src = src || location.search || location.hash;
    var reg = /[?&]([^?&=]+)=([^?&=]*)/g,
        res,
        obj = {};
    while(res = reg.exec(src)){
        obj[res[1]] = res[2] == null ? undefined : decodeURIComponent(res[2]);
    }
    return obj;
}
复制代码

replace版本的会更简洁一些,replace做正则匹配,可以收集结果,比exec要简洁一些,详细的replace用法,可参考详解JS正则replace的使用方法

function queryStringAll(src){
    src = src || location.search || location.hash;
    let res = {};
    src.replace(/[?&]([^?&=]+)=([^?&=]*)/g, (rs,$1,$2) => {
        res[$1] = $2;
    })
    return res;
}

获取指定name的query string

function queryString(key,src){
    src = src || location.search || location.hash;
    var reg = new RegExp('[?&]' + key + '=([^?&=]*)(?=&|$)'),
        match = reg.exec(src);
    return match == null ? null : decodeURIComponent(match[1]);
}

 现在已经不用考虑兼容IE,使用URLSearchParams是更简便的方法

复制代码
let p = new URLSearchParams(location.search)

p.get(参数名)

let p = new URLSearchParams()

p.set('a', 1)
p.set('b', 2)

p.toString() //得到 a=1&b=2,一个反转操作,可得到queryString
复制代码

无需进行判断,URLSearchParams已经处理了边界情况

有道词典
function queryS ...
详细X
]]> </input> <translation> <![CDATA[
posted @   全玉  阅读(1061)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示