工具函数系列-获取url参数

获取 url 中的参数

  1. 指定参数名称,返回该参数的值 或者 空字符串
  2. 不指定参数名称,返回全部的参数对象 或者 {}
  3. 如果存在多个同名参数,则返回数组
function getUrlParam(sUrl, sKey) {
    const params = (sUrl.split('#')[0].split('?')[1] || '').split('&')
    let res = {}
    if (params.length > 0) {
        params.forEach(item => {
            const [key, value] = item.split('=')
            if (typeof res[key] === 'undefined') { // 如果res中不存在key
                res[key] = value
            } else if (Array.isArray(res[key])) {
                res[key].push(value)
            } else if (typeof res[key] === 'string') { // 如果已存在且同名
                res[key] = [res[key], value]
            }
        })
        return sKey ? (res[sKey] || '') : res
    }
    return res
}

getUrlParam('http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe', 'key')

测试:

1