Created
June 30, 2014 07:26
-
-
Save hehongwei44/46d68bcb75df8cd0495b to your computer and use it in GitHub Desktop.
js通过a标签解析url
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* @function: 通过a标签解析url标签 | |
* @param:url url参数是字符串,解析的目标 | |
通过IE6-9 chrome Firefox测试 | |
* | |
*/ | |
function parseURL(url) { | |
//创建一个a标签 | |
var a = document.createElement('a'); | |
//将url赋值给标签的href属性。 | |
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('/') //路径片段 | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment