js获取url参数的几种方式

285 阅读1分钟

在JavaScript中,有几种常用的方法来获取URL参数。以下是几种常见的获取方式:

export const getUrlData = (link: string = window.location.href): NObject => {
  const [_, search] = link.split('?')
  if (!search) return {}
  const params = search.split('&')
  return params.reduce((result, v) => {
    const [key, value] = v.split('=')
    return { ...result, [key]: value }
  }, {})
}
export const getUrlData = async (link: string = window.location.href): Promise<NObject> => {
  const url = link
  const obj = {} as any
  if (url.includes('?')) {
    const [_, paramsStr] = url.split('?')
    const params = paramsStr.split('&')
    for (const param of params) {
      const [key, value] = param.split('=')
      obj[key] = value
    }
  }
  return obj
}
export const getUrlData = (link: string = window.location.href): NObject => {
  const url = link
  const params = url.split('?')[1]
  if (!params) return {}
  const obj: NObject = {}
  const paramsArray = params.split('&')
  for (let i = 0; i < paramsArray.length; i++) {
    const [key, value] = paramsArray[i].split('=')
    obj[decodeURIComponent(key)] = decodeURIComponent(value)
  }
  return obj
}
export const getUrlData = (link: string = window.location.href): NObject => {
  const url = new URL(link)
  const searchParams = url.searchParams
  const obj: NObject = {}
  for (const [key, value] of searchParams.entries()) {
    obj[key] = value
  }
  return obj
}
export const getUrlData = (link: string = window.location.href): NObject => {
  const url = new URL(link)
  const obj: NObject = {}
  url.searchParams.forEach((value, key) => {
    obj[key] = value
  })
  return obj
}
export const getUrlData = (link: string = window.location.href): NObject => {
  const url = link
  const params = url.split('?')[1]
  if (!params) return {}
  const obj: NObject = {}
  params.split('&').forEach((item) => {
    const [key, value] = item.split('=')
    obj[key] = value
  })
  return obj
}
const params = new URLSearchParams(window.location.search);
const value = params.get('paramName'); // 替换 'paramName' 为你要获取的参数名

const getQueryParam = (param) => {
    const regex = new RegExp('[?&]' + param + '=([^&#]*)');
    const results = regex.exec(window.location.href);
    return results ? decodeURIComponent(results[1]) : null;
}

const value = getQueryParam('paramName'); // 替换 'paramName' 为你要获取的参数名

const getQueryParams = ()=> {
    const queryString = window.location.search.substring(1);
    const params = {};
    queryString.split('&').forEach(param => {
        const [key, value] = param.split('=');
        params[decodeURIComponent(key)] = decodeURIComponent(value || '');
    });
    return params;
}

const params = getQueryParams();
const value = params['paramName']; // 替换 'paramName' 为你要获取的参数名

const getQueryParam = (param) => {
    const url = window.location.href;
    const params = url.split('?')[1].split('&');
    for (let i = 0; i < params.length; i++) {
        const pair = params[i].split('=');
        if (decodeURIComponent(pair[0]) === param) {
            return decodeURIComponent(pair[1] || '');
        }
    }
    return null;
}

const value = getQueryParam('paramName'); // 替换 'paramName' 为你要获取的参数名