0

使用 folder.name 或 file.name Javascript 类时,返回的值包括 %20 字符来代替实际文件或文件夹名称中的空格。

例如:

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

回报:

文件夹%20一个,文件夹%20两个,文件夹%20三个

我需要的是:

文件夹一、文件夹二、文件夹三

文件也会发生同样的事情,如果文件名中有任何空格,它们将被替换为 %20。如果文件夹名称有 1 个甚至多个空格,我该如何删除这些字符?

4

3 回答 3

3

使用 decodeURI()

decodeURI('Folder%20one, Folder%20two, Folder%20three');
// -> "Folder one, Folder two, Folder three"
于 2013-10-15T21:29:57.610 回答
3

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

您正在寻找的是decodeURIComponent.

你可以在这里看到一个例子

于 2013-10-15T21:30:52.540 回答
0

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

if (sFolder instanceof Folder) {
   folderArray.push(sFolder.name.replace (/%20/g,' ').replace ('.html', ''));
}
于 2013-10-17T15:53:51.537 回答