1.针对当前地址栏

// http://xxx?type=list

const paramsStr = window.location.search

const params = new URLSearchParams(paramsStr)

params.get('type') // list

2.针对已知url字符串

const url = new URL('http://xxx?type=list')

const paramsStr = url.search.slice(1)

const params = new URLSearchParams(paramsStr)

params.get('type') // list

3.普通函数实现

getUrlParam('http://xxx?type=list','type')

function getUrlParam(urlStr, urlKey) {

const url = new URL(urlStr) // 字符串转换成url格式

const paramsStr = url.search.slice(1) // 获取'?'后面的参数字符串

const paramsArr = paramsStr.split('&') // 分割'&'字符 获得参数数组

for (let i = 0; i < paramsArr.length; i++) {

const tempArr = paramsArr[i].split('=')

if (tempArr[0] === urlKey) {

return tempArr[1]

}

}

}

4.正则方式实现

getUrlParam('http://xxx?type=list','type')

function getUrlParam(urlStr, urlKey) {

const url = new URL(urlStr)

var reg = new RegExp('[\?\&]' + urlKey + '=([^\&]*)(\&?)', 'i')

var r = url.search.match(reg)

return r ? r[1] : ''

}