如何从JavaScript中的文件名string中提取扩展名?
我将如何获得variables中的文件的文件扩展名? 就像如果我有一个文件为1.txt我需要它的TXT部分。
与以下所有input一起使用的变体:
"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
说明
(?:#开始非捕获组 \。 #点 (#开始捕获组(捕获实际的扩展) [^。] +#除点之外的任何东西,多次 )#结束捕获组 )? #结束非捕获组,使其成为可选项 $#锚到string的末尾
使用lastIndexOf
方法查找string中的最后一个句点,然后获取string的一部分:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
我个人更喜欢分割string.
并只返回最后一个数组元素:)
var fileExt = filename.split('.').pop();
如果没有.
在文件名中,你会得到整个string。
例子:
'some_value' => 'some_value' '.htaccess' => 'htaccess' '..http://img.dovov.comsomething.cool.jpg' => 'jpg' 'http://www.w3schools.com/jsref/jsref_pop.asp' => 'asp' 'http://stackoverflow.com/questions/680929' => 'com/questions/680929'
我会build议使用lastIndexOf()而不是indexOf()
var myString = "this.is.my.file.txt" alert(myString.substring(myString.lastIndexOf(".")+1))
更好地使用以下; 始终工作!
var ext = fileName.split('.').pop();
这将返回没有点前缀的扩展名。 你可以加 ”。” + ext来检查您希望支持的扩展名!
var x = "1.txt"; alert (x.substring(x.indexOf(".")+1));
注意1:如果文件名的格式为file.example.txt,这将不起作用
注意2:如果文件名是表单文件,这将失败
这是如果您的文件有更多的解决scheme。 (点)的名字。
<script type="text/javascript">var x = "file1.asdf.txt"; var y = x.split("."); alert(y[(y.length)-1]);</script>
获取variables的值,然后像这样分开它的扩展。
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;
尝试这个。 可以解决你的问题。
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];
问候