如何使用javascript更改文件扩展名

时间:2011-05-10 16:27:29

标签: javascript programming-languages methods

有没有人知道在Javascript中更改文件扩展名的简单方法?

例如,我有一个带有“first.docx”的变量,但我需要将其更改为“first.html”。

6 个答案:

答案 0 :(得分:47)

这将更改包含文件名的字符串;

file = file.substr(0, file.lastIndexOf(".")) + ".htm";

对于可能没有扩展名的情况:

var pos = file.lastIndexOf(".");
file = file.substr(0, pos < 0 ? file.length : pos) + ".htm";

答案 1 :(得分:9)

file = file.replace(/\.[^\.]+$/, '.html');

答案 2 :(得分:6)

在Node.js中:

path.join(path.dirname(file), path.basename(file, path.extname(file)) + '.html')

如果文件没有扩展名,并且其中一个父目录的名称中带有点,则此方法也适用。

答案 3 :(得分:3)

我会用这个:

path.format({ ...path.parse('/foo/bar/baz.hoge'), base: undefined, ext: '.fuga' })

答案 4 :(得分:1)

这可能不会得到很多赞成,但我无法抗拒。

此代码将处理文件可能没有扩展名的边缘情况(在这种情况下,它将添加它)。它使用"tilde trick"

function changeExt (fileName, newExt) {
  var _tmp
  return fileName.substr(0, ~(_tmp = fileName.lastIndexOf('.')) ? _tmp : fileName.length) + '.' + newExt
}

答案 5 :(得分:-1)

var file = "first.docx";
file = file.split(".");
file = file[0]+".html";