一、从URL中提取所有参数,并返回一个参数组成的对象
例如:
queryParse('https://www.baidu.com?name=zhangsan&id=123&tn=baidu#wd');
// {name: "zhangsan", id: "123", tn: "baidu"}
queryParse('https://www.baidu.com');
// {}
split截取字符串
function queryParse(url) {
var paramObj = {};
if(url.indexOf('?') > -1) {
var _url = url.split('?')[1].split('#')[0];
var strArr = _url.split('&');
strArr.forEach(ele => {
var key = ele.split('=')[0];
var val = ele.split('=')[1];
paramObj[key] = val;
});
}
return paramObj;
}
二、从URL中提取某个参数的值
例如:
getParams('id');
// '123'
方法一、 split
function getParams(name) {
var query = window.location.search.substring(1);
if(!query) {
return false;
}
var strArr = query.split("&");
for (var i=0;i<strArr.length;i++) {
var pair = strArr[i].split("=");
if(pair[0] == name){return pair[1];}
}
return false;
}
方法二、 正则表达式
function getParams (name) {
var reg = new RegExp("[^\?&]?" + name + "=[^&]+");
var regArr = window.location.search.match(reg);
if (regArr != null) {
return arr[0].substring(arr[0].search("=") + 1);
}
return "";
}