1

获取当前页面url参数

// 方法一,传统方式,这个可能难在写这个正则,让我默写我也写不出来
function query(name){
    const search=location.search.substr(1)
    const reg=new RegExp(`(^|&)${name}=([^&]*)(&|$)`,'i')
    const res=search.match(reg)
    if(res === null){
        return null
    }
    return res[2]
}
// 方法二,URLSearchParams
function query2(name){
    const search=location.search
    const p = new URLSearchParams(search)
    return p.get(name)
}

URLSearchParams()的使用文档:https://developer.mozilla.org...

变异题
要考虑a、c、hash

?a=0&a=1&a=2&c&url=url内容#333

解析成

{
    query:{
        a:[0,1,2],
        url:'url内容'
    },
    hash:''
}
 function query(str){
    var arr1=str.split('?')
    var arr2=arr1[1].split('#')
    var arr3=arr2[0].split('&')
    var obj={};
    for(var i=0;i<arr3.length;i++){
        var arr4=arr3[i].split('=')
        if(obj[arr4[0]] !== undefined){//[] ,1,0
            if(!(obj[arr4[0]] instanceof Array)){
                obj[arr4[0]]= [obj[arr4[0]]]
            }
        obj[arr4[0]].push(arr4[1])
        }else{
            if(arr4[1]){
                obj[arr4[0]]= arr4[1]
            }
        }

    }
    return {
        query:obj,
        hash:arr2[1]
    };
}

kangting
62 声望3 粉丝

一只小小的前端