js获取url中的中文参数出现乱码解决
在项目开发中,我们有时往往需要向地址栏传递参数,有时也需要获取地址栏里的参数,今天分享下关于地址栏传递的中文参数,获取出现乱码的解决方法。
代码如下:
/**
* 取地址栏的参数
*
* @param key
* key为传递的参数名称 例如 http://localhost/test/test.html?p=广东&c=珠海,key就是p和c
*
* @returns
*/
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;
}
注意
window.search 取到的是一串带参数的字符串,如:?p=广东&c=珠海
使用
我们需要获取地址栏参数的时候,可以直接调用方法getUrlParam(key) 就可以了,并且很好的解决了中文参数的乱码问题。
测试结果:
// 控制台打印参数 p
console.log(getUrlParam('p')); // 结果为 广东
// 控制台打印参数 c
console.log(getUrlParam('c')); // 结果为 珠海
以上就是我在项目当中解决获取地址栏传递过来的参数乱码问题的方法,希望通过分享可以帮助到一些小伙伴。
咳咳,还是那句话
还是要不断学习,因为你还很年轻