有没有人知道在Javascript中更改文件扩展名的简单方法?
例如,我有一个带有“first.docx”的变量,但我需要将其更改为“first.html”。
答案 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";