Skip to main content

手写解析 url 参数.md

获取 url 里的参数并转成对象

思路:

  1. 声明对象 obj = {}
  2. 正则匹配/(^?&=)=(^?&)/g
  3. replace 替换
    • obj[arguments[1]] = arguments[2]
function getUrlParams(url) {
const obj = {}
/**
* 正则
* (^?&=) 匹配所有非 ? & = 数据
* = 等号 匹配所有=
* (^?&=) 匹配所有非 ? & = 数据
*/
const reg = /(^?&=)=(^?&=)/g
url.replace(reg,() => {
obj[arguments[1]] = arguments[2]
})
return obj
}

使用方法:

let url = 'https://www.junjin.cn?a=1&b=2'
console.log(getUrlParams(url))
// { a: 1, b: 2 }