300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > JS 获取url参数以及中文乱码问题

JS 获取url参数以及中文乱码问题

时间:2022-02-15 17:11:04

相关推荐

JS 获取url参数以及中文乱码问题

encodeURI() 函数可把字符串作为 URI 进行编码

获取请求url中参数 /index.html?name=名称&type=类型

var para=window.location.search;// 当前请求的url的参数部分console.log(para) // 结果 ?name=%E5%90%8D%E7%A7%B0&type=%E7%B1%BB%E5%9E%8B

获取指定参数

//根据参数部分和参数名来获取参数值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}

中文乱码问题

在上面的结果中可以看到这里中文已经被编码了

所以我们需要decodeURI

var msg =decodeURI(getParamFromUrl('name'))console.log(msg) // 名称

仍然出现乱码,这是因为浏览器默认使用的是 encodeURI 而我们用的是unescape进行的解码

换成decodeURI解码即可

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;}

输入到浏览器时

获取参数后

var msg =decodeURI(getParamFromUrl('name'))console.log(msg) // 名称

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。