利用a标签自动解析URL
2016-03-09 10:26
507 查看
很多时候我们有从一个URL中提取域名,查询关键字,变量参数值等的需要,而万万没想到可以让浏览器方便地帮我们完成这一任务而不用我们写正则去抓取。方法就在JS代码里先创建一个 a 标签然后将需要解析的URL赋值给 a 的 href 属性,然后就得到了一切我们想要的了。
利用这一原理,稍微扩展一下,就得到了一个更加健壮的解析URL各部分的通用方法了。下面代码来自James的博客。
var a = document.createElement('a'); a.href = 'http://www.cnblogs.com/wayou/p/'; console.log(a.host);
利用这一原理,稍微扩展一下,就得到了一个更加健壮的解析URL各部分的通用方法了。下面代码来自James的博客。
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('/') }; }
相关文章推荐
- Introducing RecyclerView(二)
- mysql count 优化
- C语言中各种整型变量在不同字长机器上的字节数详细探讨
- 【Android】常见面试题(二)
- android usb 异步请求理解
- JavaSE_JavaDoc注释详解
- 40页Pacific Trails Resort案例分析
- IIS各个版本中你需要知道的那些事儿
- android和httpClient
- 经典算法研究系列:七、深入浅出遗传算法
- HTC Vive的Lighthouse工作原理
- 根据三角形三边一内角,计算出显示在视图上的坐标点
- android和httpClient
- javascript获取wx.config内部字段解决微信分享
- ssh操作服务器命令
- ios oc 类之间相互依赖 关于import和@class的区别
- Vim的分割窗口split命令
- MR案例之WordCount
- 神经网络的DBN,CNN,RCNN介绍
- 手机刷机