最近捣鼓小东西的时候需要用到url中的各个参数,于是到网上到处搜罗如何解析链接中的参数,这不让我搜罗到大神写的一个解析函数,哇嘎嘎。。。。。
使用函数之前,我们先了解下window.location,查看js文档就可以发现,window.location它包含了像protocol,hostname,host,port,search,hash,href,pathname等属性,再深入下,其实我们发现a标签也和window.location一样,也包含了window.location这些属性,所以重要的东西来了
代码如下:
JavaScript
<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.yangguangdream.co/video/player.php?tvid=PLVsaH7lRzbsN3"));</script>
通过函数解析我们可以得到以下数据
JavaScript
{ file:"player.php" hash:"" host:"video.yangguangdream.com" 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.yangguangdream.com/video/player.php?tvid=PLVsaH7lRzbsN3"}
通过以上函数我们就可以获取到链接中的tvid=后面的数据了(PLVsaH71RzbsN3)
编不下去了。。。。。撤了
微信扫码查看本文
发表评论