web-dev-qa-db-fra.com

Comment changer l'extension de fichier avec JavaScript

Est-ce que quelqu'un connaît un moyen facile de changer une extension de fichier en JavaScript?

Par exemple, j'ai une variable avec "premier.docx" mais j'ai besoin de le changer en "premier.html".

27
JLuiz

Cela changera la chaîne contenant le nom du fichier;

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

Pour des situations où il peut ne pas y avoir une extension:

var pos = file.lastIndexOf(".");
file = file.substr(0, pos < 0 ? file.length : pos) + ".htm";
50
Alex K.
file = file.replace(/\.[^\.]+$/, '.html');
11
ChaosPandion

Cela n'aura probablement pas beaucoup de upvotes mais je ne pouvais pas résister.

Ce code traitera du cas d'EDGE dans lequel un fichier pourrait ne pas avoir une extension déjà (auquel cas elle l'ajoutera). Il utilise le "Tilde Trick"

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

J'utiliserais ceci:

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

Dans node.js:

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

Cela fonctionne également si le fichier ne dispose pas d'une extension et l'un des répertoires parent a un point dans le nom.

0
emlai