美文网首页程序员让前端飞
javascript将url解析为json格式

javascript将url解析为json格式

作者: 雪萌萌萌 | 来源:发表于2017-08-17 20:23 被阅读0次

方法一:最简单的方法,利用a标签来实现

function parseUrl(url){
    var a=document.createElement('a');
    a.href=url;
    return {
      protocol:a.protocol.replace(':',''),
      hostname:a.hostname,
      port:a.port,
      path:a.pathname,
      query:(()=>{
        var query=a.search.substr(1);
        var queryArr=query.split('&');
        var queryObj={};
        queryArr.forEach((item,index)=>{
            var item=item.split('=');
            var key=item[0];
            queryObj[key]=item[1];
        })
        return queryObj;
      })(),
       params:(()=>{
        var params=a.hash.substr(1);
        var paramsArr=params.split('#');
        return paramsArr;
        
      })(),

    }
}
var urlObj = parseUrl('http://www.baidu.com:90/search?name=liyajie&age=12#abc#bbb')
console.log(urlObj)

得到的结果

image.png

方法二:通过nodejs的url模块
解析URL需要用到Node.js提供的url模块,它使用起来非常简单,通过parse()将一个字符串解析为一个Url对象:

    'use strict';
     var url = require('url');
     console.log(url.parse('http://user:pass@host.com:8080/path/to/file?query=string#hash'));

返回的结果

Url {
  protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host.com:8080',
  port: '8080',
  hostname: 'host.com',
  hash: '#hash',
  search: '?query=string',
  query: 'query=string',
  pathname: '/path/to/file',
  path: '/path/to/file?query=string',
  href: 'http://user:pass@host.com:8080/path/to/file?query=string#hash' }

相关文章

网友评论

    本文标题:javascript将url解析为json格式

    本文链接:https://www.haomeiwen.com/subject/xlvnrxtx.html