解决js地址栏中传递中文乱码的问题

问题背景:
地址栏传参有中文,中文截取后出现乱码问题。

问题代码:

1
2
3
4
5
6
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;
}

解决问题代码:

1
2
3
4
5
6
7
8
9
10
function getUrlParam(key) {
// 获取参数
var url = window.location.search;
// 正则筛选地址栏
var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
// 匹配目标参数
var result = url.substr(1).match(reg);
//返回参数值
return result ? decodeURIComponent(result[2]) : null;
}

参考解决问题链接:
js地址栏获取参数的方法,解决中文乱码问题,能支持中文参数

文章目录