javascript將url解析為json格式

方法一:最簡(jiǎn)單的方法,利用a標(biāo)簽來(lái)實(shí)現(xiàn)

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)

得到的結(jié)果

image.png

方法二:通過(guò)nodejs的url模塊
解析URL需要用到Node.js提供的url模塊,它使用起來(lái)非常簡(jiǎn)單,通過(guò)parse()將一個(gè)字符串解析為一個(gè)Url對(duì)象:

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

返回的結(jié)果

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' }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • Node.js是目前非?;馃岬募夹g(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    w_zhuan閱讀 3,720評(píng)論 2 41
  • Node.js是目前非?;馃岬募夹g(shù),但是它的誕生經(jīng)歷卻很奇特。 眾所周知,在Netscape設(shè)計(jì)出JavaScri...
    Myselfyan閱讀 4,189評(píng)論 2 58
  • 個(gè)人入門學(xué)習(xí)用筆記、不過(guò)多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡(jiǎn)書(shū)好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫(xiě)給我自己看...
    kirito_song閱讀 2,637評(píng)論 1 37
  • 第31章回顧 這個(gè)龍族男孩說(shuō)話聲音不小,空曠的洞里都傳出了回音,所有龍族的孩子都聽(tīng)見(jiàn)了。可是這三個(gè)站在龍瀅身邊男孩...
    陳瀛Neptune閱讀 494評(píng)論 2 2

友情鏈接更多精彩內(nèi)容