url截取及其处理中文乱码问题:
// 获取url地址栏的参数
function GetRequest() {
//首先获取到当前页面的地址栏信息
var url = window.location.href;//获取url地址
var obj = {};//待会用来存放参数的对象
var reg = /\?/;//匹配从?截取
if(url.match(reg)) {
//判断传入参数,以问号截取,问号后是参数
var chars = url.split('?')[1];
var arr = chars.split('&');//截取&号
//获得截取后的数组为键值对字符串
for (var i = 0; i < arr.length; i++) {
//保守一点确定看是否为 name=value形式
var num = arr[i].indexOf("=");
if (num > 0) {
//拼接字符串
var name = arr[i].substring(0, num);
var value = arr[i].substr(num + 1);
//拼接对象,并转码
obj[decodeURIComponent(name)] = decodeURIComponent(value);
}
}
}
return obj;
}
效果图:

普通截取url地址参数
只有一个参数时:


拿到的结果:

多个参数:


拿到的结果:

封装的方法如下:可以同时实现拿一个参数或者拿多个多个参数

<script>
// console.log(location.href)
// 获取url地址栏的参数
function GetRequest(url) {
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
let strs = str.split("?");
// console.log(strs)
strs = strs[1].split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
let url = GetRequest(location.href);
console.log(url)
</script>
网友评论