从文件名中提取扩展名
在 JavaScript 中从文件名中提取扩展名的快捷方法是:
function get_extension(filename) {
return filename.slice((filename.lastIndexOf('.') - 1 >>> 0) + 2);
}
它的名称没有扩展名(例如 myfile
)或者以 .
dot 开头(例如 .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(), // 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"