看代码:

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

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

当前回答

var parts = filename.split('.');
return parts[parts.length-1];

其他回答

我刚刚意识到,对p4bl0的回答发表评论是不够的,尽管Tom的回答显然解决了问题:

return filename.replace(/^.*?\.([a-zA-Z0-9]+)$/, "$1");
function getFileExtension(filename)
{
  var ext = /^.+\.([^.]+)$/.exec(filename);
  return ext == null ? "" : ext[1];
}

测试了

"a.b"     (=> "b") 
"a"       (=> "") 
".hidden" (=> "") 
""        (=> "") 
null      (=> "")  

"a.b.c.d" (=> "d")
".a.b"    (=> "b")
"a..b"    (=> "b")

别忘了有些文件没有扩展名,所以:

var parts = filename.split('.');
return (parts.length > 1) ? parts.pop() : '';

如果你正在寻找一个特定的扩展名,并且知道它的长度,你可以使用substr:

var file1 = "50.xsl";

if (file1.substr(-4) == '.xsl') {
  // do something
}

JavaScript参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr

var parts = filename.split('.');
return parts[parts.length-1];