如何在http://中替换/除外

时间:2016-03-28 22:31:00

标签: javascript

我有一个字符串,我需要将%2f替换为/http://除外。

示例:

var str = "http://locahost%2f";
str = str.replace(/%2f/g, "/"); 

我以某种方式str输出了http:/locahost/

提前致谢!

2 个答案:

答案 0 :(得分:0)

应该使用什么

您应该使用decodeURIComponentdecodeURI函数来解码像您这样的编码字符串。例如,decodeURIComponent("http://locahost%2f")将返回http://localhost/

话虽如此,decodeURIComponent应该用于解码URI的组件,而不是像http://locahost/那样的完整URI。

您应该查看this answer,它解释了decodeURIComponentdecodeURI之间的区别以及何时应该使用它们。

解决方法

由于第一个/未编码,因此很难找到完全符合您要求的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", "/");