获取URL上传递的参数
//封装后的方法:
let url = "https://www.zhanyixianghexieshan.cn/index.html?lx=1&chapter=1&name=zyx#inside"
/*
queryURLparams():获取URL中传递的参数和哈希值
@params:
ulr[string] 目标url
@return:
[object] 包含参数和哈希值的对象
by Zack on 2022-2-16 16:01:10
*/
function queryURLparams(url) {
//1获取 ? 和 # 后面的信息
let askIn = url.indexOf("?"),
wellIn = url.indexOf("#"),
askText = "",
wellText = "";
// '#' 不存在
wellIn === -1?wellIn = url.length:null;
// '?' 存在
askIn >= 0?askText = url.substring(askIn+1,wellIn):null;
wellText = url.substring(wellIn+1);
//2,获取每一部分的信息
let result = {}
wellText !== ''? result[HASH] = wellText:null
if(askText !== ""){
let arr = askText.split("&")
arr.forEach(item =>{
let itemArr = item.split("=")
result[itemArr[0]] = itemArr[1]
})
}
return result
}
//超高级的正则(跟上面函数一样的效果)
function queryURLParams(url){
let result = {},
reg1 = /([^?=&#]+)=([^?=&#]+)/g,
reg2 = /#([^?=&#]+)/g;
url.replace(reg1, (n,x,y) => result[x] = y);
url.replace(reg2, (n,x) => result['HASH'] = x)
return result
}