如何从Javascript中的文件名字符串中提取扩展名?
2022-08-30 01:10:31
如何在变量中获取文件的文件扩展名?就像我有一个1.txt我需要它的txt部分。
适用于以下所有输入的变体:
"file.name.with.dots.txt""file.txt""file"""nullundefined将:
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
我个人更喜欢将字符串拆分,然后只返回最后一个数组元素:).
var fileExt = filename.split('.').pop();
如果文件名中没有,则取回整个字符串。.
例子:
'some_value' => 'some_value'
'.htaccess' => 'htaccess'
'../images/something.cool.jpg' => 'jpg'
'http://www.w3schools.com/jsref/jsref_pop.asp' => 'asp'
'http://stackoverflow.com/questions/680929' => 'com/questions/680929'