从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"