首页 > 解决方案 > 如何使用 JavaScript 将 gsi 替换为字符串中的空字符串('')?

问题描述

我有上面的字符串,我想删除gsi以及值。删除gsi后,我的字符串应如下所示。

方案 1

/product/Abrasives?gsi=1

预期产出

/product/Abrasives

方案 2

/product/Abrasives?query=search&gsi=1

预期输出 /product/Abrasives?query=search

方案 3

/product/Abrasives?query=search&gsi=1&fname=abc

预期产出

/product/Abrasives?query=search&fname=abc

标签: javascriptreactjs

解决方案


您可以使用URL构造函数并删除参数:

const paths = ["/product/Abrasives?gsi=1", "/product/Abrasives?query=search&gsi=1", "/product/Abrasives?query=search&gsi=1&fname=abc"]

function removeParam(path, name) {
  const url = new URL(path, "https://a.com")
  url.searchParams.delete(name)
  return url.pathname + url.search
}

console.log(
  paths.map(p => removeParam(p, "gsi"))
)


或者您可以分开?获取查询字符串和路径名。使用URLSearchParams构造函数并删除参数

const paths = ["/product/Abrasives?gsi=1", "/product/Abrasives?query=search&gsi=1", "/product/Abrasives?query=search&gsi=1&fname=abc"]

function removeParam(path, name) {
  const [pathName, queryString] = path.split('?');
  const searchParams = new URLSearchParams(queryString);
  searchParams.delete(name);
  return pathName + searchParams
}

console.log(
  paths.map(p => removeParam(p, "gsi"))
)


推荐阅读