如何替换路径变量中的%20个字符?使用Javascript

时间:2013-10-15 21:26:29

标签: javascript

使用folder.name或file.name Javascript类时,返回的值包含%20个字符,而不是实际文件或文件夹名称中的空格。

例如:

if (sFolder instanceof Folder) {
   folderArray.push(sFolder.name);
}

返回:

文件夹%20one,文件夹%20two,文件夹%20three

我需要的是:

文件夹一,文件夹二,文件夹三

同样的事情发生在文件中,如果文件名中有任何空格,则用%20替换它们。如果文件夹名称包含1个甚至多个空格,如何删除这些字符?

3 个答案:

答案 0 :(得分:3)

%20是空格的HTML编码值。 URL不处理空格,因此它们对HTML / URL进行编码。

您要找的是decodeURIComponent

您可以看到示例here

答案 1 :(得分:2)

使用decodeURI()

decodeURI('Folder%20one, Folder%20two, Folder%20three');
// -> "Folder one, Folder two, Folder three"

答案 2 :(得分:0)

我发现基本替换方法只删除了要替换的字符的第一个实例。 DecodeURI是一个更好的答案,但我也发现你可以在replace方法中使用以下表达式,并且可以连续使用该方法用于不同的字符集,这不是我为该方法阅读的文档。

if (sFolder instanceof Folder) {
   folderArray.push(sFolder.name.replace (/%20/g,' ').replace ('.html', ''));
}