JS在小程序中URL参数相关方法

  1. 获取url中参数
export function fetchURLContainParams(url) {
 const array = url.split('?')
  if (array.length <= 1) {
    return {}
  } else {
    const urlStr = array[1]
    let obj = {};
    let paramsArr = urlStr.split('&')
    for (let i = 0, len = paramsArr.length; i < len; i++){
      let arr = paramsArr[i].split('=')
      obj[arr[0]] = arr[1];
    }
    return obj
  }
}
  1. 检查url是否含有某个参数
  const obj = fetchURLContainParams(url)
  const res = Object.keys(obj).find(item => item === key)
  return res && res !== 'undefined'
  1. 替换url中的参数内容
export function replaceURLParamVale(url, key, value) {
  let obj = fetchURLContainParams(url)
  let newURL = url.split('?')[0]
  if (Object.keys(obj).length > 0) {
    Object.keys(obj).forEach((item, index) => {
      if (item === key) {
          if (index === 0) {
            newURL = newURL + "?" + key + "=" + value
          } else {
            newURL = newURL + "&" + key + "=" + value
          }
      } else {
        if (index === 0) {
          newURL = newURL + "?" + item + "=" + obj[item]
        } else {
          newURL = newURL + "&" + item + "=" + obj[item]
        }
      }
    })
    return newURL
  } else {
    return url;
  }
}
  1. url地址添加参数
export function urlStringAppendParam(url, key, value) {
  if (!url) {
    return url
  }
  if (Object.keys(fetchURLContainParams(url)).length === 0) {
    return url + "?" + key + "=" + value
  } else {
    if (checkURLContainParamValue(url, key)) {
      return replaceURLParamVale(url, key, value)
    } else {
      return url + "&" + key + "=" + value
    }
  }
}

注: 仅在微信小程序环境下测试过

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容