美文网首页
获取url地址?后面传递的参数

获取url地址?后面传递的参数

作者: 小柠有点萌 | 来源:发表于2020-06-07 17:21 被阅读0次

    let url="http://www.zidingyi.com/index.html?lx=2&name=sr&val=aaa";
    拿到以下结果
    /*

    • {
    • lx="2",
    • name="sr",
    • val="aaa"
    • }
      */

    第一种方式

    // 1.获取问好后面的值
    let  askIndex=url.indexOf("?")
    console.log(askIndex) //?的索引
    let askText=url.substr(askIndex+1)
    console.log(askText) //获取到值 lx=2&name=sr&val=aaa
    
    //2 将lx=2&name=sr&val=aaa用数组拆分
    
    let splitText = askText.split("&")
    console.log(splitText) //=>["lx=2", "name=sr", "val=aaa"]
    
    //3 将["lx=2", "name=sr", "val=aaa"]用:分隔
    let result={}
    splitText.forEach((item,index)=>{
        let n = item.split("=")
        let key =n[0];
        let value =n[1];
        result[key]=value;
    });
    console.log(result) //=> {lx: "2", name: "sr", val: "aaa"}
    

    第二种方式基于正则封装

    let url="http://www.zidingyi.com/index.html?lx=2&name=sr&val=aaa#rrr";
    function queryURLParams(url) {
        let result={}
            reg1=/([^?=&#]+)=([^?=&#]+)/g,
            reg2=/#([^?=&#]+)/g;
        url.replace(reg1,(n,x,y)=>result[x]=y);
        url.replace(reg2,(n,x)=>result['HASH']=x);
        return result
    }
    let paramsObj=queryURLParams(url)
    console.log(paramsObj)  //=>{lx: "2", name: "sr", val: "aaa", HASH: "rrr"}
    

    相关文章

      网友评论

          本文标题:获取url地址?后面传递的参数

          本文链接:https://www.haomeiwen.com/subject/sujnzhtx.html