查询/删除url中的参数

/**
 * 获取url中的参数值
 * @param name 参数名称
 */
export function getQueryString(name) {
  const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
  const r = window.location.search.substr(1).match(reg)
  if (r != null) {
    return unescape(r[2])
  }
  return null
}
/** * 删除url中的指定参数并返回新url * @param url 需要截取的url * @param ref 需要删除的参数名称 */ export function delQueryString(url, ref, isEnCode = false) { let str = '' let newUrl = '' let hash = '' if (url.indexOf('#') !== -1) { hash = url.substr(url.indexOf('#')) url = url.split(hash)[0] } if (url.indexOf('?') !== -1) { str = url.substr(url.indexOf('?') + 1) } else { newUrl = url } let arr = [] let returnurl = '' if (str.indexOf('&') !== -1) { arr = str.split('&') let index for (index in arr) { if (arr[index].split('=')[0] !== ref) { returnurl = returnurl + arr[index].split('=')[0] + '=' + arr[index].split('=')[1] + '&' } } newUrl = url.substr(0, url.indexOf('?')) + '?' + returnurl.substr(0, returnurl.length - 1) } else { arr = str.split('=') if (arr[0] === ref) { newUrl = url.substr(0, url.indexOf('?')) } else { newUrl = url } } newUrl = newUrl + hash return isEnCode ? encodeURIComponent(newUrl) : newUrl }
原文地址:https://www.cnblogs.com/zkpThink/p/13066489.html