183 votes

Comment extraire de l'extension de nom de fichier de chaîne de caractères en Javascript?

comment aurais-je obtenir l'extension de fichier du Fichier dans une variable? comme si j'ai un fichier en tant que 1.txt j'ai besoin de l'txt partie.

372voto

Tomalak Points 150423

Une variante qui fonctionne avec toutes les entrées suivantes:

  • "file.name.with.dots.txt"
  • "file.txt"
  • "file"
  • ""
  • null

serait:

var re = /(?:\.([^.]+))?$/;

var ext = re.exec("file.name.with.dots.txt")[1];   // "txt"
var ext = re.exec("file.txt")[1];                  // "txt"
var ext = re.exec("file")[1];                      // undefined
var ext = re.exec("")[1];                          // undefined
var ext = re.exec(null)[1];                        // undefined

Explication

(?: # begin non-capture d'un groupe
 \. # un point
 ( # lancer la capture de groupe (capture les extension)
 [^.]+ # rien, sauf un point, plusieurs fois
 ) # fin de la capture de groupe
)? # fin de non-capture d'un groupe, le rendre facultatif
$ # ancre à la fin de la chaîne

222voto

Robert Mullaney Points 211

Personnellement, je préfèrent diviser la chaîne par des '.' et il suffit de retourner le dernier élément de tableau :)

var fileExt = filename.split('.').pop();

Si il n'y a pas de". " dans le nom de fichier , vous obtenez l'ensemble de la chaîne de retour.

Exemples:

'some_value' = 'some_value'

'.htaccess' = 'htaccess'

'../images/something.cool.jpg' = 'jpg'

'http://www.w3schools.com/jsref/jsref_pop.asp' = 'asp'

'http://stackoverflow.com/questions/680929' = 'com/questions/680929'

211voto

Guffa Points 308133

Utiliser l' lastIndexOf méthode pour trouver la dernière période de la chaîne, et d'obtenir de la part de la chaîne après que:

var ext = fileName.substr(fileName.lastIndexOf('.') + 1);

26voto

Russ Cam Points 58168

Je vous conseille d'utiliser lastIndexOf() par opposition à indexOf()

var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))

18voto

Afzal Ali Points 31

Mieux utiliser le suivant; Fonctionne toujours!

var ext =  fileName.split('.').pop();

Ce sera le retour de l'extension sans un point de préfixe. Vous pouvez ajouter "." + ext pour contre-vérifier les extensions que vous souhaitez soutenir!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X