看代码:

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

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

当前回答

Wallacer的回答很好,但还需要再检查一下。

如果文件没有扩展名,它将使用filename作为扩展名,这是不好的。

试试这个:

return ( filename.indexOf('.') > 0 ) ? filename.split('.').pop().toLowerCase() : 'undefined';

其他回答

var file = "hello.txt";
var ext = (function(file, lio) { 
  return lio === -1 ? undefined : file.substring(lio+1); 
})(file, file.lastIndexOf("."));

// hello.txt -> txt
// hello.dolly.txt -> txt
// hello -> undefined
// .hello -> hello
function extension(fname) {
  var pos = fname.lastIndexOf(".");
  var strlen = fname.length;
  if (pos != -1 && strlen != pos + 1) {
    var ext = fname.split(".");
    var len = ext.length;
    var extension = ext[len - 1].toLowerCase();
  } else {
    extension = "No extension found";
  }
  return extension;
}

/ /使用

扩展(“file.jpeg”)

总是返回扩展低cas,以便您可以检查它的字段更改 适用于:

file.JpEg

文件(无扩展名)

文件。(noextension)

var extension = fileName.substring(fileName.lastIndexOf('.')+1);
var filetypeArray = (file.type).split("/");
var filetype = filetypeArray[1];

在我看来,这是一个更好的方法。

Wallacer的回答很好,但还需要再检查一下。

如果文件没有扩展名,它将使用filename作为扩展名,这是不好的。

试试这个:

return ( filename.indexOf('.') > 0 ) ? filename.split('.').pop().toLowerCase() : 'undefined';