最近捣鼓小东西的时候需要用到url中的各个参数,于是到网上到处搜罗如何解析链接中的参数,这不让我搜罗到大神写的一个解析函数,哇嘎嘎。。。。。
使用函数之前,我们先了解下window.location,查看js文档就可以发现,window.location它包含了像protocol,hostname,host,port,search,hash,href,pathname等属性,再深入下,其实我们发现a标签也和window.location一样,也包含了window.location这些属性,所以重要的东西来了
代码如下:
<script type="text/javascript">
function parseURL(url) {
var a = document.createElement('a');
a.href = url;
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port||'80',
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('/')
};
}
console.log(parseURL("http://video.zbpnice.cn/video/player.php?tvid=PLVsaH7lRzbsN3"));
</script>通过函数解析我们可以得到以下数据
{
file:"player.php"
hash:""
host:"video.zbpnice.cn"
params:
tvid:"PLVsaH7lRzbsN3"
__proto__:Object
path:"/video/player.php"
port:"80"
protocol:"http"
query:"?tvid=PLVsaH7lRzbsN3"
relative:"/video/player.php?tvid=PLVsaH7lRzbsN3"
segments:Array(2)
0:"video"
1:"player.php"
length:2
__proto__:Array(0)
source:"http://video.zbpnice.cn/video/player.php?tvid=PLVsaH7lRzbsN3"
}通过以上函数我们就可以获取到链接中的tvid=后面的数据了(PLVsaH71RzbsN3)
编不下去了。。。。。撤了


评论列表 :共有7人吐槽, 10121人围观