封裝了一個? URL地址解析

_王驍凱發表於2019-10-10
~ function () {
	/*
	 * formatTime:時間字串的格式化處理
	 *   @params
	 *     templete:[string] 我們最後期望獲取日期格式的模板
	 *     模板規則:{0}->年  {1~5}->月日時分秒
	 *   @return
	 *     [string]格式化後的時間字串
	 *  by zhufengpeixun on 2019/08/13
	 */
	function formatTime(templete = "{0}年{1}月{2}日 {3}時{4}分{5}秒") {
		let timeAry = this.match(/\d+/g);
		return templete.replace(/\{(\d+)\}/g, (...[, $1]) => {
			let time = timeAry[$1] || "00";
			return time.length < 2 ? "0" + time : time;
		});
	}

	/* 
	 * queryURLParams:獲取URL地址問號和麵的引數資訊(可能也包含HASH值)
	 *   @params
	 *   @return
	 *     [object]把所有問號引數資訊以鍵值對的方式儲存起來並且返回
	 * by zhufengpeixun on 2019/08/13
	 */
	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);
	});
}();
複製程式碼

相關文章