我需要为包含不需要的查询参数的页面路由制定重定向规则。这就是默认不需要的查询参数的样子。
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/