Есть ли способ, которым я могу получить последнее значение (на основе символа '\') из полного пути?
Пример:
C:\Documents and Settings\img\recycled log.jpg
В этом случае я просто хочу получить recycled log.jpg
полный путь в JavaScript.
javascript
Джин Юн
источник
источник
replace
это гораздо медленнее , чемsubstr
, который может быть использован в сочетании сlastIndexOf('/')+1
: jsperf.com/replace-vs-substringFiddle
, хотя для `\\` , работает нормально."/var/drop/foo/boo/moo.js".replace(/^.*[\\\/]/, '')
moo.js
Ради производительности я проверил все ответы, приведенные здесь:
И победителем стал ответ в стиле Split и Pop , благодаря bobince !
источник
path.split(/.*[\/|\\]/)[1];
В Node.js вы можете использовать модуль разбора Path ...
источник
basename
функцию:path.basename(file)
С какой платформы идет путь? Пути Windows отличаются от путей POSIX, отличаются от путей Mac OS 9, отличаются от путей ОС RISC, которые отличаются ...
Если это веб-приложение, в котором имя файла может быть с разных платформ, единого решения не существует. Однако разумным ударом является использование как '\' (Windows), так и '/' (Linux / Unix / Mac, а также альтернатива в Windows) в качестве разделителей пути. Вот не-RegExp версия для дополнительного удовольствия:
источник
var path = '\\Dir2\\Sub1\\SubSub1'; //path = '/Dir2/Sub1/SubSub1'; path = path.split('\\').length > 1 ? path.split('\\').slice(0, -1).join('\\') : path; path = path.split('/').length > 1 ? path.split('/').slice(0, -1).join('/') : path; console.log(path);
Ates, ваше решение не защищает от пустой строки в качестве ввода. В этом случае это не с
TypeError: /([^(\\|\/|\:)]+)$/.exec(fullPath) has no properties
.bobince, вот версия nickf, которая обрабатывает разделители пути DOS, POSIX и HFS (и пустые строки):
источник
Следующая строка кода JavaScript даст вам имя файла.
источник
Не более краткий, чем ответ Никфа , но этот непосредственно «извлекает» ответ вместо замены ненужных частей пустой строкой:
источник
Вопрос с вопросом «получить имя файла без расширения» приведен здесь, но решения для этого нет. Вот решение, модифицированное из решения Бобби.
источник
Другой
Здесь split имеет регулярное выражение с классом символов
. Два символа должны быть экранированы с помощью \
Или использовать массив для разделения
Это был бы способ динамически помещать больше разделителей в массив, если это необходимо.
Если
fullPath
в вашем коде явно задана строка, она должна быть без обратной косой черты !подобно
"C:\\Documents and Settings\\img\\recycled log.jpg"
источник
Я использую:
Он заменяет последний,
\
поэтому он также работает с папками.источник
источник
Полный ответ:
источник
Маленькая функция для включения в ваш проект для определения имени файла по полному пути для Windows, а также по абсолютным путям GNU / Linux & UNIX.
источник
источник
Успешно скрипт для вашего вопроса, полный тест
источник
Это решение намного проще и универсальнее как для «имени файла», так и для «пути».
источник
источник
var file_name = file_path.substring(file_path.lastIndexOf('/'));
источник