给定一段 URL 地址截取后面的参数转成对象(key-value形式)

本文介绍了如何使用JavaScript解析URL中的GET参数,将其转换为键值对JSON对象,适用于动态参数处理。

给定一段 URL 地址截取后面的 GET 参数转成对象

有这样一个 URL: http://xxxxrerr.htm?a=1&b=2&c=&d=xxx&e,请写一段 JS 程序提取 URL 中的各个 GET 参数(参数名和参数个数不确定),将其按 key-value形式返回到一个 json 结构中,如 {a: "1", b: "2", c: "", d: "xxx", e: undefined}

// 有这样一个 URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e,请写一段 JS 程序提取 URL 中的各个 GET 参数
// (参数名和参数个数不确定),将其按 key-value形式返回到一个 json 结构中,
// 如 {a: "1", b: "2", c: "", d: "xxx", e: undefined}

// 给定一段 url 地址
let str = 'http://xxxxrerr.htm?a=1&b=2&c=&d=xxx&e'

// 先把字符 ? 后面的字符截取出来
let newStr = str.substr(str.indexOf('?') + 1)

// 通过 reduce 方法进行处理
let newObj = newStr.split('&').reduce((obj, item) => {
  let itemArr = item.split('=') // ['a', '1']
  obj[itemArr[0]] = itemArr[1] // {a: 1}
  return obj
}, {})

console.log(newObj) // {a: '1', b: '2', c: '', d: 'xxx', e: undefined}

还有一种更加帅气的写法

// 给定一段 url 地址
let str = 'http://xxxxrerr.htm?a=1&b=2&c=&d=xxx&e'

// 先把字符 ? 后面的字符截取出来
let newStr = str.substr(str.indexOf('?') + 1)

// 通过 reduce 方法进行处理
let newObj = newStr.split('&').reduce((obj, item) => ((obj[item.split('=')[0]] = item.split('=')[1]), obj), {})

console.log(newObj) // {a: '1', b: '2', c: '', d: 'xxx', e: undefined}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值