js parses the url, and parses the parameters in the following url into key-value objects
https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=196420384&lang=zh_CN
Method 1, split() + loop take out in turn
parseURLParams(url) {
let queryParams = {}
// 判断是否有参数
if (url.indexOf('?') < 0) return queryParams
// 分离域名和参数
let domainAndParams = url.split('?')
// 参数切分
let queryStr = domainAndParams[1]
let queryItems = queryStr.split('&')
// 循环参数,把参数转为键值对
queryItems.forEach(item => {
let paramKV = item.split('=')
queryParams[paramKV[0]] = paramKV[1]
})
// 返回参数键值对
return queryParams
}
Method 2, regular + arguments
parseURLParams(url) {
let queryParams = {}
// 正则匹配规则
let reg = /([^?=&]+)=([^?=&]+)/g
// 利用replace替换
url.replace(reg, function() {
// 用伪数组进行键值对拼接
queryParams[arguments[1]] = arguments[2]
})
// 返回参数键值对
return queryParams
}
Method 3, regex + ...arg
parseURLParams(url) {
let queryParams = {}
// 正则匹配规则
let reg = /([^?=&]+)=([^?=&]+)/g
// 利用replace替换
url.replace(reg, function() {
// 用伪数组进行键值对拼接
queryParams[arguments[1]] = arguments[2]
})
// 返回参数键值对
return queryParams
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。