javascript - 通过删除不需要的查询参数同时保留其他参数来返回干净 URL 的最佳方法是什么?

标签 javascript reactjs

我需要为包含不需要的查询参数的页面路由制定重定向规则。这就是默认不需要的查询参数的样子。

https://some-test-url.com/b/laptops/1117?clubId=6612&offset=0&rootDimension=pcs_availability%253AOnlinepipsymbBrand%253ADell&searchCategoryId=1117&selectedFilter=all&sortKey=relevance&sortOrder=1

它应该重定向到已清理的 URL。它应该在这些默认值条件下从 URL 中清除这些内容。对于限制,它应该删除 48 和 20。我假设应该保留下面未列出的任何其他查询参数,因为它们不是默认值。

searchCategoryId=all
selectedFilter=all
sortKey=relevance&sortOrder=1
limit=48 on desktop or limit=20 on mweb
clubId ever
offset=0

所以上面清理后的 URL 应该是这样的

https://some-test-url.com/b/laptops/1117?rootDimension=pcs_availability%253AOnlinepipsymbBrand%253ADell

但是,例如,如果它不是默认查询参数

www.test.com/blah?offset=40&selectedFilter=online&clubId=3422

它应该返回

www.test.com/blah?offset=40&selectedFilter=online

处理这个问题的最佳方法是什么?我尝试使用正则表达式执行此操作,但无法获得预期结果,因为它有点复杂。感谢您的帮助!

最佳答案

您可以使用所有主流浏览器都支持的URLSearchParams:https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

类似于:

const params = new URLSearchParams(window.location.href);
for (var key of params.keys()){
    // do something with logic from your allow/block list
    // such as removing it:
    params.delete(key);
}

关于javascript - 通过删除不需要的查询参数同时保留其他参数来返回干净 URL 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66380146/

相关文章:

javascript - Applescript 迭代 HTML 页面的元素

javascript - 当 document.cookie 改变时触发一个 Action ?

javascript - 点击网址下载文件

javascript - 为什么请求头没有在 react 中的get请求中传递?

reactjs - Material UI - 避免 Typography 组件之间的换行

reactjs - 如何通过更改任何状态值重新渲染平面列表?

reactjs - React typescript - 对象可能未定义

javascript - 使用 openlayers 3 从 svg 图像创建图层

javascript - 如何从不同的 HTML 文件调用 JavaScript 函数?

javascript - 单击链接后将 Canvas 外菜单滑回