微信小程序或js中获取url参数

微信小程序扫普通链接获取url参数

ps: 这里的方法跟 打开页面路径中的参数不一样哈.
欢迎各位大神前来指点

文章目录

方法一:

可获取多个参数

/** * params1: url * params2: 要获取参数 */
const getQueryString = (url, name) => { 
    var reg = new RegExp('(^|&|/?)' + name + '=([^&|/?]*)(&|/?|$)', 'i')
    var r = url.substr(1).match(reg)
    if (r != null) { 
        // console.log("r = " + r)
        // console.log("r[2] = " + r[2])
        return r[2]
    }
    return null;
}

方法二:

获取一个参数, url中有多个参数,只会返回第一个参数值

/** * params1: url * params2: 要获取参数 */
getQueryVariable: function (query, variable) { 
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) { 
        var pair = vars[i].split("=");
        if (pair.length == 2) { 
            return pair[1];
        }
        if (pair[0] == variable) {  return pair[1]; }
    }
    return (false);
},

方法三:

方法一差不多, 在js中使用window.location.search获取页面url地址

getQueryString(name) { 
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
}


//demo
//url地址为:http://www.xxxx.com?mobile=13899997777&nickname=小不点
let mobile = getQueryString('mobile');

使用

/** * 生命周期函数--监听页面加载 */
onLoad: function(options) { 
    that = this;
    //扫码截取参数
    if (options.q !== undefined) { 
        let q = decodeURIComponent(options.q);
        // q 是解码后的完整url 【https://js.test.com/index?combo_code=10000006】
        let comboCodeParams = utils.getQueryVariable(q, 'combo_code');
        that.setData({ 
            comboCode: comboCodeParams
        })
    }
    
    //方法二使用及结果【获取多个参数】:
    var q1 = 'https://js.test.com/index?id=159&type=2&testA=123'
    console.log("params1---->", utils.getQueryString(q1, 'id'));  //159
    console.log("params2---->", utils.getQueryString(q1, 'type')); //2
    console.log("params3---->", utils.getQueryString(q1, 'testA')); //123
    
    
    //方法一结果:【不利于获取多个参数】
     console.log("params1---->", utils.getQueryVariable(q1, 'id'));  //159
    console.log("params2---->", utils.getQueryVariable(q1, 'type')); //159
    console.log("params3---->", utils.getQueryVariable(q1, 'testA')); //159
}

微信小程序获取页面路径参数

  • 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
// demo
wx.navigateTo({ 
   url: '../user/user?userId='+ this.data.id,
});

<navigator url="../user/user?userId={ {item.id}}">
</navigator>


// 在user页面中获取路径参数
onLoad: function (options) { 
    this.setData({ 
        userId: options.userId
    })
},

js中获取url参数

其中的一种方式demo

function GetQueryString(name) { 
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if(r!=null)return  unescape(r[2]); return null;
}
 
// 调用方法
alert(GetQueryString("id"));
alert(GetQueryString("type"));
alert(GetQueryString("testA"));
    原文作者:Smile_ping
    原文地址: https://blog.csdn.net/Smile_ping/article/details/102480660
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞