JS中解析URL的简单方法

在web应用中解析URL并不容易。你可以加入一个第三方parse库或是引入polyfill然后使用处于Living standard的URL API,但如果只是一个简单的应用场景就不值得为此大费周章了,在github上有人分享了这么一个简单快捷的方法

var parser = document.createElement('a');    
parser.href = "http://example.com:3000/pathname/?search=test#hash";    

parser.protocol; // => "http:"    
parser.hostname; // => "example.com"    
parser.port;     // => "3000"    
parser.pathname; // => "/pathname/"    
parser.search;   // => "?search=test"    
parser.hash;     // => "#hash"    
parser.host;     // => "example.com:3000"    

够简洁的吧?不过这个方法也有几个问题:

  • 只适用于web场景

  • 如果需要解析search部分(问号之后到hash之前的部分)的话,还是需要手动解析

这里贴出我写的解析search部分的代码:

var getSearchParams = function(search) {
  var paramPart = search.substr(1).split('&');
  return paramPart.reduce(function(res, item) {
    parts = item.split('=');
    res[parts[0]] = parts[1];
    return res;
  }, {});
}

它将返回一个{key: value, ..}的对象,方便进一步处理这些参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 已经同步到gitbook,想阅读的请转到gitbook: Django 1.10 中文文档 URL dispatc...
    leyu阅读 14,267评论 0 16
  • 小城里的冬天充满着油烟味儿,各种小吃摊冒着热气儿,在温暖这个冰凉的冬天。好难得有一种状态,跟自己聊会儿天,静一静。...
    WinstonLennon阅读 115评论 0 0
  • 当小孩时,你会想快快长大;现在,当一名观众,你会想什么呢? 2017.08.30 星期三 晴 01 “萌...
    飞飞丫阅读 320评论 0 2