【发布时间】:2010-10-15 10:05:46
【问题描述】:
如何在变量中获取文件的文件扩展名? 就像我有一个文件为 1.txt 我需要它的 txt 部分。
【问题讨论】:
标签: javascript
如何在变量中获取文件的文件扩展名? 就像我有一个文件为 1.txt 我需要它的 txt 部分。
【问题讨论】:
标签: javascript
var x = "1.txt";
alert (x.substring(x.indexOf(".")+1));
注意 1:如果文件名的格式为 file.example.txt
,这将不起作用
注意 2:如果文件名的格式为 file
【讨论】:
使用lastIndexOf方法查找字符串中最后一个句点,并获取字符串后面的部分:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
【讨论】:
const extension = path.extname(url);
我使用下面的代码:
var fileSplit = filename.split('.');
var fileExt = '';
if (fileSplit.length > 1) {
fileExt = fileSplit[fileSplit.length - 1];
}
return fileExt;
【讨论】:
如果您的文件有更多 . (点)在名称中。
<script type="text/javascript">var x = "file1.asdf.txt";
var y = x.split(".");
alert(y[(y.length)-1]);</script>
【讨论】:
我建议使用lastIndexOf() 而不是indexOf()
var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))
【讨论】:
适用于以下所有输入的变体:
"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
解释
(?: # 开始非捕获组 \。 # 一个点 (#开始捕获组(捕获实际的扩展) [^.]+ # 除了点之外的任何东西,多次 ) # 结束捕获组 )? # 结束非捕获组,使其可选 $ # 锚定到字符串的末尾【讨论】:
我个人更喜欢用. 分割字符串,然后只返回最后一个数组元素:)
var fileExt = filename.split('.').pop();
如果 filename 中没有 .,你会得到整个字符串。
示例:
'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'
【讨论】:
false 或 null 而不是我刚刚传入的字符串。这至少可以让你处理这些情况。
获取变量中的值,然后像这样分离它的扩展名。
var find_file_ext=document.getElementById('filename').value;
var file_ext=/[^.]+$/.exec(find_file_ext);
这会对你有所帮助。
【讨论】:
最好使用以下内容;始终有效!
var ext = fileName.split('.').pop();
这将返回不带点前缀的扩展名。你可以加 ”。” + ext 检查您希望支持的扩展!
【讨论】:
试试这个。可以解决你的问题。
var file_name_string = "file.name.string.png"
var file_name_array = file_name_string.split(".");
var file_extension = file_name_array[file_name_array.length - 1];
问候
【讨论】: