获取url参数

发布时间 2023-03-24 09:40:01作者: Rain1112022

URI: Uniform ResourceIdentifiers即通用资源标识符。
有效的URI中不能包含某些字符(例如空格),URI编码方法就可以对URI进行编码(UTF-8编码), Global对象的encodeURI()和encodeURIComponent()方法可以对URI进行编码(encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号,所以它主要用于整个URI,而encodeURIComponent()则会对它发现的任何非标准字符进行编码,主要用于对URI中的某一段进行编码);

  • URLSearchParams()构造函数是浏览器提供的一个API接口可以帮我们查询URL字符串;URLSearchParams() 构造器创建并返回一个新的URLSearchParams 对象。开头的'?' 字符会被忽略;
  • Object.entries()获取对象的键名和键值,每一对键名和键值组成新的数组;
  • Object.fromEntries()方法使用二维数组形式创建对象,把键值对列表转换为一个对象,这个方法是和Object.entries()相对的;
  • decodeURIComponent() 函数可把字符串作为 URI 组件进行解码;
const urlSearchParams = new URLSearchParams(window.location.search)

const params = Object.fromEntries(urlSearchParams.entries())

function getParams(url) {

  const res = {}

  if(url.includes('?')) {

    const str = url.split('?')[1]

    const arr = str.split('&')

    arr.forEach(item => {

      const key = item.split('=')[0]

      const value = item.split('=')[1]

      res[key] = decodeURIComponent(value)

    })

  }

  return res

}