封装获取字符串网址栏信息的库

161 阅读1分钟
/* 
 * queryURLParams:获取URL地址问号和面的参数信息(可能也包含HASH值)
 *   @params
 *   @return
 *     [object]把所有问号参数信息以键值对的方式存储起来并且返回
 * by LYR on 2019/09/8
 */
function queryURLParams() {
	let obj = {};
	this.replace(/([^?=&#]+)=([^?=&#]+)/g, (...[, $1, $2]) => obj[$1] = $2);
	this.replace(/#([^?=&#]+)/g, (...[, $1]) => obj['HASH'] = $1);
	return obj;
}

/* 扩展到内置类String.prototype上 */
["formatTime", "queryURLParams"].forEach(item => {
	String.prototype[item] = eval(item);
});
}();
let url = "http://www.sina.cn/?lx=1&from=wx#video";
console.log(url.queryURLParams());
//=>{lx:1,from:'wx',HASH:'video'}