Когда пользователь выбирает файл на веб-странице, я хочу иметь возможность извлечь только имя файла.
Я пробовал использовать функцию str.search, но, похоже, она не работает, когда имя файла выглядит примерно так: c: \ uploads \ ilike.this.file.jpg .
Как мы можем извлечь только имя файла без расширения?
javascript
browser
extract
Йоги Ян 007
источник
источник
filename = filename.substring(0, filename.lastIndexOf('.'));
Потому что его способ потерпит неудачу с расширениями, состоящими из более чем 3 символов, например: .html, .jpeg и т. Д.var startIndex = Math.max(fullPath.lastIndexOf('\\'), fullPath.lastIndexOf('/')) + 1;
Чтобы разделить строку ({filepath} / {filename}) и получить имя файла, вы можете использовать что-то вроде этого:
Пример:
из:
"/home/user/file.txt".split(/(\\|\/)/g).pop()
ты получаешь:
"file.txt"
источник
var filename = filepath.replace(/^.*?([^\\\/]*)$/, '$1');
[\\/]
. Более того, попросили убрать и расширение файла. Для полного решения см .: stackoverflow.com/a/32156800/19163В настоящее время существует более простой способ:
источник
fileInput.files.length
перед звонком.name
, если пользователь нажал кнопку «Отмена».Очень просто
источник
Предполагая, что:
Код JavaScript будет:
источник
источник
Я предполагаю , что вы хотите , чтобы лишить все расширения, то есть
/tmp/test/somefile.tar.gz
вsomefile
.Прямой подход с регулярным выражением:
Альтернативный подход с регулярным выражением и операцией с массивом:
источник
Я только что сделал свою версию этого. Моя функция может быть использована для извлечения из нее всего, что вы хотите, если вам не нужно все это, вы можете легко удалить некоторый код.
Будет выведено следующее:
С
&& nOffset+1 === str.length
добавлениемisDirectory
:Учитывая тестовые примеры, вы можете видеть, что эта функция работает довольно надежно по сравнению с другими предлагаемыми здесь методами.
Примечание для новичков о том, что \\: \ - это escape-символ, например, \ n означает новую строку и вкладку \ ta. Чтобы можно было писать \ n, вы должны набрать \\ n.
источник
&& eOffset < nOffset
).Вход :
C:\path\Filename.ext
Выход :
Filename
В HTML-коде установите
onChange
значение File следующим образом ...Предполагая, что ваш идентификатор текстового поля - wpName ...
JavaScript
источник
Ни один из получивших высокую оценку ответов на самом деле не предоставляет «только имя файла без расширения», а другие решения представляют собой слишком много кода для такой простой работы.
Я думаю, что это должно быть однострочным для любого программиста JavaScript. Это очень простое регулярное выражение:
Сначала удалите все до последней косой черты, если она есть.
Затем снимите все, что было после последней менструации, если таковое имеется.
Он прост, он надежен, он выполняет именно то, что требуется. Я что-то упускаю?
источник
Как удалить расширение
источник
источник
Ни один из приведенных выше ответов не помог мне, вот мое решение, которое обновляет отключенный ввод с именем файла:
источник
Если вы используете jQuery, тогда
источник