【问题标题】:How do I replace the %20 characters in a path variable? Javascript如何替换路径变量中的 %20 字符? Javascript
【发布时间】:2013-10-15 21:26:29
【问题描述】:

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

例如:

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

返回:

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

我需要的是:

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

使用 decodeURI()

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

【讨论】:

    【解决方案2】:

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

    你要找的是decodeURIComponent

    你可以看一个例子here

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        • 1970-01-01
        • 2019-06-21
        相关资源
        最近更新 更多