Javascript 正则表达式将 %2F 替换为 %21

Javascript Regular Expression Replace %2F with %21

我需要 javascript/regex 将 %2F 替换为 %21

这样我就可以在将 encodeURIComponent() 应用于 URL 后通过 GET 参数传递正斜杠。

当它到达服务器端时,我将从 !至 /

这不是一个理想的解决方案,但似乎没有其他方法适用于我的重写规则。

你试过了吗String.replace?

x = x.replace(/%2F/gi, "%21");

好的,我已经解决了这个问题,并且我进行了大量研究,因为我不像这里的某些人那样有才华。我想无论如何我都会分享解决方案。

基本上,服务器会在使用 %2F 后立即对其进行解码,因此您最终会得到一条完全错误的路径。

您需要做的是在客户端将 %2F 替换为 %252F。

x = x.replace(/%2F/gi, "%252F");

这是 %2F 的双重编码形式。

因此,当它到达服务器时,它会过早地解码为 %2F 而不是正斜杠。

不客气。