欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS获取url参数及解决参数中包含中文时出现的乱码问题

程序员文章站 2022-04-03 08:20:49
...

H5页面通过url传参时需要通过JS获取url上的参数,以下两个方法配合使用,就可以获取到URL上携带的参数

url如:http://127.0.0.1:8848/zz-metro-op-H5/syx-activity/test.html?name=张三

//根据参数名来获取参数值
function getParamString(paraPart,name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = paraPart.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}
function getParamFromUrl(name){
  var r = getParamString(window.location.search,name)
  return r
}


console.log(getParamFromUrl('name')) // å¼ ä¸

上面输出的结果中,中文出现了乱码问题,这是因为浏览器默认使用的是 encodeURI 而我们用的是unescape进行的解码;

做如下修改即可解决中文乱码问题

function getParamString(paraPart,name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = paraPart.substr(1).match(reg);
    // if (r != null) return unescape(r[2]); return null;
    if (r != null) return decodeURI(r[2]); return null;
}

console.log(getParamFromUrl('name')) //张三