处理地址栏参数
示例路径:https://www.baidu.com/s?wd=11&rsv_spt=1&rsv_iqid=0x9b723bb400023df2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=3&rsv_sug1=2&rsv_sug7=100&rsv_btype=i&prefixsug=11&rsp=1&inputT=1529&rsv_sug4=1958#baidu
String.prototype.queryURLParams = function () {
let strs = this,
obj = {},
//取左边和右边不包含?=&#特殊字符的参数
regs = /([^?=&#]+)=([^?=&#]+)/g,
//取# 是非 ?=&#特殊字符的zhi
regs2 = /#([^?=&#]+)/g;
// $1, $2 分别代表左边匹配的第一个参数属性和属性值
strs.replace(regs, (_, $1, $2) => {
obj[$1] = $2;
});
strs.replace(regs2, (_, $1) => {
obj['hash'] = $1;
});
return obj;
};
const strps = `https://www.baidu.com/s?wd=11&rsv_spt=1&rsv_iqid=0x9b723bb400023df2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=3&rsv_sug1=2&rsv_sug7=100&rsv_btype=i&prefixsug=11&rsp=1&inputT=1529&rsv_sug4=1958#baidu`;
console.log(strps.queryURLParams());
// 打印结果
{
"wd": "11",
"rsv_spt": "1",
"rsv_iqid": "0x9b723bb400023df2",
"issp": "1",
"f": "8",
"rsv_bp": "1",
"rsv_idx": "2",
"ie": "utf-8",
"tn": "baiduhome_pg",
"rsv_enter": "0",
"rsv_dl": "tb",
"rsv_sug3": "3",
"rsv_sug1": "2",
"rsv_sug7": "100",
"rsv_btype": "i",
"prefixsug": "11",
"rsp": "1",
"inputT": "1529",
"rsv_sug4": "1958",
"hash": "baidu"
}