Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29952799
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2011-11-14 11:14:52

  1. function parseURL(url) {
  2.     var a = document.createElement('a');
  3.     a.href = url;
  4.     return {
  5.         source: url,
  6.         protocol: a.protocol.replace(':',''),
  7.         host: a.hostname,
  8.         port: a.port,
  9.         query: a.search,
  10.         params: (function(){
  11.             var ret = {},
  12.                 seg = a.search.replace(/^\?/,'').split('&'),
  13.                 len = seg.length, i = 0, s;
  14.             for (;i<len;i++) {
  15.                 if (!seg[i]) { continue; }
  16.                 s = seg[i].split('=');
  17.                 ret[s[0]] = s[1];
  18.             }
  19.             return ret;
  20.         })(),
  21.         file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
  22.         hash: a.hash.replace('#',''),
  23.         path: a.pathname.replace(/^([^\/])/,'/$1'),
  24.         relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
  25.         segments: a.pathname.replace(/^\//,'').split('/')
  26.     };
  27. }
用法:
  1. var myURL = parseURL('');
  2.   
  3. myURL.file; // = 'index.html'
  4. myURL.hash; // = 'top'
  5. myURL.host; // = 'abc.com'
  6. myURL.query; // = '?id=255&m=hello'
  7. myURL.params; // = Object = { id: 255, m: hello }
  8. myURL.path; // = '/dir/index.html'
  9. myURL.segments; // = Array = ['dir', 'index.html']
  10. myURL.port; // = '8080'
  11. myURL.protocol; // = 'http'
  12. myURL.source;

阅读(927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~