javascript - 如何使用 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
解决方案
您可以使用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"))
)
推荐阅读
- android - java:将位置转换为字符串并返回
- oracle-apex - 将应用程序从 APEX 18.2 导入到 APEX 5.1.3
- python - Python 机器人,添加反应
- odoo - 如何更改 odoo 中的默认数据库架构?
- python - 获取二维数组的 ArgMax
- python - 用递归解释子集创建
- javascript - 如何在 React Native 中制作抖动图像动画?
- laravel - 尝试按类别从表中检索帖子
- nativescript - Android 上的 NativeScript Angular Basic 应用程序大小 > 160 MB
- reactjs - OPTIONS net::ERR_CONNECTION_REFUSED ...但是服务器按预期工作?!反应/表达