我如何在变量中获得文件的文件扩展名? 比如,如果我有一个文件为1.txt,我需要它的txt部分。
当前回答
这是解决方案,如果您的文件有更多。(点)在名称。
<script type="text/javascript">var x = "file1.asdf.txt";
var y = x.split(".");
alert(y[(y.length)-1]);</script>
其他回答
var x = "1.txt";
alert (x.substring(x.indexOf(".")+1));
注意1:如果文件名的形式是file.example.txt,这将不起作用 注意2:如果文件名是文件的形式,这将失败
一种适用于以下所有输入的变体:
“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
使用lastIndexOf方法找到字符串中的最后一个句点,并获得字符串后面的部分:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
我个人更喜欢用。然后返回最后一个数组元素:)
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'
我使用下面的代码:
var fileSplit = filename.split('.');
var fileExt = '';
if (fileSplit.length > 1) {
fileExt = fileSplit[fileSplit.length - 1];
}
return fileExt;