JavaScript 从文件名中提取扩展名

示例

从JavaScript中的文件名提取扩展名的快速简便方法是:

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

无论名称没有扩展名(例如myfile)还是以.点开头(例如.htaccess),它都可以正常工作:

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

以下解决方案可能会从完整路径中提取文件扩展名:

function get_extension(path) {
    var basename = path.split(/[\\/]/).pop(),  // 从完整路径中提取文件名...
                                               // (支持`\\`和`/`分隔符)
        pos = basename.lastIndexOf('.');       // 得到`的最后位置。

    if (basename === '' || pos < 1)            // 如果文件名为空或...
        return "";                             //  找不到`.`(-1)或第一个

    return basename.slice(pos + 1);            // 提取扩展名而忽略`.`
}

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