我有一个字符串,我需要将%2f
替换为/
,http://
除外。
示例:
var str = "http://locahost%2f";
str = str.replace(/%2f/g, "/");
我以某种方式str
输出了http:/locahost/
。
提前致谢!
答案 0 :(得分:0)
您应该使用decodeURIComponent
或decodeURI
函数来解码像您这样的编码字符串。例如,decodeURIComponent("http://locahost%2f")
将返回http://localhost/
。
话虽如此,decodeURIComponent
应该用于解码URI的组件,而不是像http://locahost/
那样的完整URI。
您应该查看this answer,它解释了decodeURIComponent
和decodeURI
之间的区别以及何时应该使用它们。
由于第一个/
未编码,因此很难找到完全符合您要求的Javascript函数。在%2f
之后解码http://
的工作解决方案将使用String.prototype.split
。
工作示例:
var encoded = "http://localhost%2f";
var encodedArray = str.split("://");
var decoded = encodedArray[0] + "://" + encodedArray[1].replace(/%2f/g, "/");
答案 1 :(得分:-3)
这应该有效:
str = str.replace("%2f", "/");