JavaScript Extraire l'extension du nom de fichier


Exemple

Le moyen rapide et rapide d'extraire une extension du nom de fichier en JavaScript sera:

function get_extension(filename) {
    return filename.slice((filename.lastIndexOf('.') - 1 >>> 0) + 2);
}

Cela fonctionne correctement à la fois avec des noms sans extension (par exemple myfile ) ou commençant par . dot (par exemple .htaccess ):

get_extension('')                           // ""
get_extension('name')                       // ""
get_extension('name.txt')                   // "txt"
get_extension('.htpasswd')                  // ""
get_extension('name.with.many.dots.myext')  // "myext"

La solution suivante peut extraire les extensions de fichier du chemin d'accès complet:

function get_extension(path) {
    var basename = path.split(/[\\/]/).pop(),  // extract file name from full path ...
                                               // (supports `\\` and `/` separators)
        pos = basename.lastIndexOf('.');       // get last position of `.`

    if (basename === '' || pos < 1)            // if file name is empty or ...
        return "";                             //  `.` not found (-1) or comes first (0)

    return basename.slice(pos + 1);            // extract extension ignoring `.`
}

get_extension('/path/to/file.ext');  // "ext"