我如何在变量中获得文件的文件扩展名? 比如,如果我有一个文件为1.txt,我需要它的txt部分。


当前回答

获取变量中的值&然后像这样分离它的扩展名。

var find_file_ext=document.getElementById('filename').value;
var file_ext=/[^.]+$/.exec(find_file_ext); 

这对你有帮助。

其他回答

我使用下面的代码:

var fileSplit = filename.split('.');
var fileExt = '';
if (fileSplit.length > 1) {
fileExt = fileSplit[fileSplit.length - 1];
} 
return fileExt;

我建议使用lastIndexOf()而不是indexOf()

var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))

获取变量中的值&然后像这样分离它的扩展名。

var find_file_ext=document.getElementById('filename').value;
var file_ext=/[^.]+$/.exec(find_file_ext); 

这对你有帮助。

最好使用以下方法;总是工作!

var ext =  fileName.split('.').pop();

这将返回不带点前缀的扩展名。你可以加上“。”+ ext检查您希望支持的扩展!

一种适用于以下所有输入的变体:

“file.name.with.dots.txt” “file.txt” “文件” "" 零 未定义的

是:

var re = /(?:\.([^.]+))?$/;

var ext = re.exec("file.name.with.dots.txt")[1];   // "txt"
var ext = re.exec("file.txt")[1];                  // "txt"
var ext = re.exec("file")[1];                      // undefined
var ext = re.exec("")[1];                          // undefined
var ext = re.exec(null)[1];                        // undefined
var ext = re.exec(undefined)[1];                   // undefined

解释

(?:         # begin non-capturing group
  \.        #   a dot
  (         #   begin capturing group (captures the actual extension)
    [^.]+   #     anything except a dot, multiple times
  )         #   end capturing group
)?          # end non-capturing group, make it optional
$           # anchor to the end of the string