You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript将URL查询字符串中的#替换为转义标识符并更新当前地址

实现方案

你的现有代码已经完成了#转%23的编码逻辑,URL实例的searchParams.set方法原生就会对特殊参数值做自动URL编码,不需要手动替换。只需要补充浏览历史推入的逻辑即可,完整代码如下:

let currentUrl = 'http://localhost:8088/stores/1/brands?q=#';
let url = new URL(currentUrl);

url.searchParams.set("q", "#"); 
// 清空原始URL里被识别为片段的hash部分
url.hash='';

let newUrl = url.href; 
// 将新地址推入浏览历史,不会触发页面刷新
history.pushState(null, document.title, newUrl);

console.log(newUrl); // 输出:http://localhost:8088/stores/1/brands?q=%23

补充说明

浏览器解析URL时会默认把#识别为片段标识符的起始标记,所以你传入的原始URLhttp://localhost:8088/stores/1/brands?q=#中,#不会被识别为q参数的取值,而是会被归类到hash属性中,所以代码里需要显式清空hash再重新设置q参数的值,就能得到正确编码后的地址。

内容的提问来源于stack exchange,提问作者fikfe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:15:04