获取URL中的参数是前端开发中经常需要处理的场景之一。但如果参数中存在中文,获取并显示则需要特殊处理。
以下是获取URL参数且参数为中文时的完整攻略:
1.获取URL中的参数
我们可以使用JS内置对象window.location来获取当前页面的地址:
var url = window.location.href;
接下来我们需要从url中解析出参数,一种常用的方法是使用正则表达式:
var reg = new RegExp("(^|&)param=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
var param = decodeURIComponent(r[2]);
以上代码中,我们需要自己修改param=([^&]*)这段正则表达式中的param为实际需要获取的参数名称。
2.参数为中文时的解码处理
如果获取到的参数中存在中文,则可能会出现乱码问题,因此我们需要对参数进行解码处理。
JS提供了decodeURIComponent()函数用于解码URL中的参数。例如:
var str = '%E4%B8%AD%E6%96%87%E5%8F%82%E6%95%B0';
var decodedStr = decodeURIComponent(str);
console.log(decodedStr); // 输出:中文参数
示例
示例1:获取URL参数中的中文参数并解码
假设我们需要获取URL参数中名为name的参数:
https://www.example.com/index.html?name=%E5%BC%A0%E4%B8%89
以下代码中,我们通过正则表达式获取参数并解码:
var reg = new RegExp("(^|&)name=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
var name = decodeURIComponent(r[2]);
console.log(name); // 输出:张三
示例2:将中文参数拼接在URL中
假设我们需要将用户输入的中文参数拼接在URL的后面:
https://www.example.com/search.html?keyword=%E7%A7%91%E6%8A%80%E6%96%87%E5%8C%96
以下代码中,我们使用encodeURI()函数对用户输入的参数进行编码,然后将参数拼接在URL后面:
var keyword = '科技文化';
var encodedKeyword = encodeURI(keyword);
var url = 'https://www.example.com/search.html?keyword=' + encodedKeyword;
window.location.href = url;
以上代码中,对于输入的中文参数"科技文化",编码后得到"%E7%A7%91%E6%8A%80%E6%96%87%E5%8C%96"。将该参数拼接在URL后面,则得到最终的URL:"https://www.example.com/search.html?keyword=%E7%A7%91%E6%8A%80%E6%96%87%E5%8C%96"。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js获取url中的参数且参数为中文时通过js解码 - Python技术站