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

如何使用encodeURIComponent转义URL中的下划线?问题求助

解决方法

首先,你需要修正replace调用的语法错误,并且调整它直接匹配下划线——因为encodeURIComponent不会转义下划线(根据RFC标准,下划线属于URI中的非保留字符)。

修正后的代码如下:

requestUrl: encodeURIComponent(uri).replace(/_/g, '%5F'),
requestorUrl: document.referrer ? encodeURIComponent(document.referrer).replace(/_/g, '%5F') : encodeURIComponent(uri.origin).replace(/_/g, '%5F'),

你的原代码存在两个问题:

  • 缺少替换字符串:replace(/%5F/g)调用不完整——replace方法需要同时传入匹配模式和替换值两个参数。
  • 匹配模式错误:encodeURIComponent不会把下划线转换成%5F,所以搜索%5F根本找不到任何内容。你应该直接匹配下划线字符_。

为什么encodeURIComponent不转义下划线?

下划线_在URI规范中属于非保留字符,标准URI使用场景下不需要编码。如果你的业务场景(比如自定义API或特定系统)要求必须编码下划线,就需要在encodeURIComponent处理后手动替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:57:19