我如何在变量中获取文件的文件扩展名?就像我有一个1.txt文件一样,我需要它的txt部分。
如何从Javascript中的文件名字符串中提取扩展名?
IT技术
javascript
2021-03-17 11:53:54
6个回答
适用于以下所有输入的变体:
"file.name.with.dots.txt"
"file.txt"
"file"
""
null
undefined
将是:
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
解释
(?: # 开始非捕获组 \. #一个点 ( # 开始捕获组(捕获实际扩展名) [^.]+ # 除了点以外的任何东西,多次 ) # 结束捕获组 )?# 结束非捕获组,使其可选 $ # 锚定到字符串的末尾
我个人更喜欢拆分字符串.
并只返回最后一个数组元素:)
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'
使用该lastIndexOf
方法查找字符串中的最后一个句点,并获取字符串的后面部分:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
我建议使用lastIndexOf()而不是indexOf()
var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))
最好使用以下内容;始终有效!
var ext = fileName.split('.').pop();
这将返回没有点前缀的扩展名。你可以加 ”。” + ext 检查您希望支持的扩展!
其它你可能感兴趣的问题