异类的Javascript处理和解析URL的方式

通常来说,我们使用Javascript处理和解析URL是使用location对象。在今天这个代码小技巧中,我们使用另外一个比较异类的方式处理和解析URL。

代码如下:

    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){ 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('/')
    };
    }

如何使用这个方法呢?简单如下:

    var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
    myURL.file;// = 'index.html' myURL.hash;// = 'top' myURL.host;// = 'abc.com' myURL.query;// = '?id=255&m=hello' myURL.params;// = Object = { id: 255, m: hello } myURL.path;// = '/dir/index.html' myURL.segments;// = Array = ['dir', 'index.html'] myURL.port;// = '8080' myURL.protocol;// = 'http' myURL.source;// = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

GBdebug在线调试唯一地址:http://www.gbtags.com/gb/debug/c8946680-fb7f-4a2b-8cb7-9c81b420a74a.htm

可以看到运行结果如下:

阅读原文:异类的Javascript处理和解析URL的方式

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8288/viewspace-1128307/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8288/viewspace-1128307/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值