как бы получить расширение файла файла в переменной? например, если у меня есть файл как 1.txt Мне нужна часть txt.
Как извлечь расширение из строки имени файла в Javascript?
Ответ 1
Вариант, который работает со всеми следующими входами:
-
"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
Объяснение
(?: # 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
Ответ 2
Используйте метод lastIndexOf
для поиска последнего периода в строке и после этого получите часть строки:
var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
Ответ 3
Я лично предпочитаю разделить строку на .
и просто вернуть последний элемент массива:)
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'
Ответ 4
Я бы рекомендовал использовать lastIndexOf() в отличие от indexOf()
var myString = "this.is.my.file.txt"
alert(myString.substring(myString.lastIndexOf(".")+1))
Ответ 5
Лучше использовать следующее; Работает всегда!
var ext = fileName.split('.').pop();
Это вернет расширение без префикса точки. Можете добавить "." + ext для проверки на расширения, которые вы хотите поддержать!
Ответ 6
var x = "1.txt";
alert (x.substring(x.indexOf(".")+1));
note 1: это не будет работать, если имя файла имеет форму file.example.txt
примечание 2: это не удастся, если имя файла имеет вид файл
Ответ 7
Это решение, если в вашем файле больше. (точек) в названии.
<script type="text/javascript">var x = "file1.asdf.txt";
var y = x.split(".");
alert(y[(y.length)-1]);</script>
Ответ 8
получить значение в переменной, а затем разделить его расширение так же, как это.
var find_file_ext=document.getElementById('filename').value;
var file_ext=/[^.]+$/.exec(find_file_ext);
Это поможет вам.
Ответ 9
Я использую следующий код:
var fileSplit = filename.split('.');
var fileExt = '';
if (fileSplit.length > 1) {
fileExt = fileSplit[fileSplit.length - 1];
}
return fileExt;
Ответ 10
Попробуйте это. Может решить вашу проблему.
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];
Привет