JavaScript 替换url参数

1,118 阅读1分钟

两种常用的替换url参数方法

1. 常规js替换方法

这个方法可以精确匹配到url参数,不会出现类似:userId / nameId 将所有包含“Id”的都匹配。

const queryReplace = (href, key, keyValue) => {
  if (href.indexOf(key) > -1) {
    let reg = new RegExp(`((?=${key}=).*?(?=&))|((?=${key}=).*)`)
    href = href.replace(reg, `${key}=${keyValue}`)
  } else {
    let join = href.indexOf('?') > -1 ? '&' : '?'
    href += `${join}${key}=${keyValue}`
  }
  return href
}
queryReplace('https://www.xxxxx.com?id=1&nameid=2&ageid=3', 'id', '44444')
输出:https:www.xxxxx.com?id=44444&nameid=2&ageid=3

2. URL对象方法

js原生对象,但存在ie低版本兼容性问题。

const replaceUrlparams = (url, arg, argVal) => {
  const urlInfo = new URL(url);
  urlInfo.searchParams.set(arg, argVal)
  return urlInfo.href
}