看代码:

var file1 = "50.xsl";
var file2 = "30.doc";
getFileExtension(file1); //returns xsl
getFileExtension(file2); //returns doc

function getFileExtension(filename) {
    /*TODO*/
}

当前回答

fetchFileExtention(fileName) {
    return fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
}

其他回答

function file_get_ext(filename)
    {
    return typeof filename != "undefined" ? filename.substring(filename.lastIndexOf(".")+1, filename.length).toLowerCase() : false;
    }
return filename.replace(/\.([a-zA-Z0-9]+)$/, "$1");

编辑:奇怪的是(或者可能不是)替换方法的第二个参数中的$1似乎不工作…对不起。

在node.js中,这可以通过以下代码实现:

var file1 ="50.xsl";
var path = require('path');
console.log(path.parse(file1).name);

在path模块中有一个标准库函数:

import path from 'path';

console.log(path.extname('abc.txt'));

输出:

. txt

所以,如果你只想要格式:

path.extname('abc.txt').slice(1) // 'txt'

如果没有扩展名,函数将返回一个空字符串:

path.extname('abc') // ''

如果使用Node,则path是内置的。如果你的目标是浏览器,那么Webpack将为你捆绑一个路径实现。如果你的目标浏览器没有Webpack,那么你可以手动包含path-browserify。

没有理由进行字符串分割或正则表达式。

还有一个使用ES6解构的简单方法:

Const path = 'hello.world.txt' const[扩展,…nameParts] = path.split('.').reverse(); console.log(扩展:,扩展);