horshoo
horshoo
发布于 3个月前

js 将地址参数转 Map

 // 纯参数
let params_str = 'name=zhangsan&age=13&token=kkkkk'
let params_map = parseUrlParams(params_str)
console.log(params_map.name)
console.log(params_map.age)
if (map.has('token')) throw Error('token 不存在')
console.log(params_map.token)
// 带地址参数
let params_str = 'http://pianduan.fun/user?name=zhangsan&age=13&token=kkkkk'
let params_map = parseUrlParams(params_str)
console.log(params_map.name)
console.log(params_map.age)
if (map.has('token')) throw Error('token 不存在')
console.log(params_map.token)

/**
 * 地址参数转 Map
 * @param {String} params_str
 */
function parseUrlParams(params_str) {
  if (params_str.startsWith('http')) {
    params_str = params_str.split('?')[1]
  }
  let map = new Map()
  let params = params_str.split('&')
  for (const str of params) {
    let key = str.split('=')[0]
    let value = str.split('=')[1]
    map.set(key, value)
  }
  return map
}