URL处理相关函数

url解析

	function parseURL(url) {
		var a = document.createElement('a');
		a.href = url;
		return {
			source: url,
			protocol: a.protocol.replace(':', ''),
			host: a.hostname,
			port: a.port,
			query: a.search,
			params: (function () {
				var ret = {},
					seg = a.search.replace(/^\?/, '').split('&'),
					len = seg.length,
					i = 0,
					s;
				for (; i < len; i++) {
					if (!seg[i]) {
						continue;
					}
					s = seg[i].split('=');
					ret[s[0]] = s[1];
				}
				return ret;
			})(),
			file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
			hash: a.hash.replace('#', ''),
			path: a.pathname.replace(/^([^\/])/, '/$1'),
			relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
			segments: a.pathname.replace(/^\//, '').split('/')
		};
	}

url参数动态替换

	function replaceUrlParam(url, paramName, paramValue) {
		if (paramValue == null) {
			paramValue = '';
		}
		var pattern = new RegExp('\\b(' + paramName + '=).*?(&|$)');
		if (url.search(pattern) >= 0) {
			return url.replace(pattern, '$1' + paramValue + '$2');
		}
		url = url.replace(/\?$/, '');
		return url + (url.indexOf('?') > 0 ? '&' : '?') + paramName + '=' + paramValue;
	}
posted @ 2018-04-04 10:57  wmui  阅读(167)  评论(0)    收藏  举报