获取 url信息 的封装

103 篇文章 0 订阅
97 篇文章 0 订阅
/*
*queryURLParams()
*
*@params
* url地址信息
* 
*@return
*返回一组新信息
*/ 

function queryURLParams(url) {
  
  //获取 ? 和 # 后面二点信息
  let askIn = url.indexOf('?'),
      wellIn = url.indexOf('#'),
      askText = '',
      wellText = ''
  
  //#不存在 wellin 等于 url 的长度 存在 往下执行
  if( wellIn === -1 ){
    wellIn = url.length
  }

  // ?存在
  if(askIn >= 0){
    askText = url.substring(askIn + 1, wellIn)
  }

  // #存在
  wellText = url.substring(wellIn + 1)
  
  // 获取每一部分信息
  // #信息
  let result = {}
  wellText !== '' ? result['HASH'] = wellText : null
  
  // ?后面的信息
  if( askText !== '' ){
    let ary = askText.split('&')
    ary.forEach(item => {
      let itemAry = item.split('=')
      result[itemAry[0]] = itemAry[1]
    })
  }

  return result
}

let url = 'https://blog.csdn.net?name=shuaizi&age=20$1x=sixsixsix#box'

let paramsObj = queryURLParams(url)

console.log(paramsObj)

//正则简短版
function queryURLParams(url) {

  let result = {},
      reg1 = /([^?=&#]+)=([^?=&#]+)/g,
      reg2 = /#([^?=&#]+)/g
      
  url.replace(reg1,(n, x, y) => result[x] = y)
  url.replace(reg2,(n, x) => result['HASH'] = x)

  return result
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值