Ответ 1
var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
У меня есть полный путь к изображению, которое я использую jquery для чтения в форме $('img.my_image').attr('src')
, но мне просто нужна часть имени файла (отбрасывание пути).
Существуют ли какие-либо встроенные функции для этого, или будет ли регулярное выражение единственным вариантом?
var fileNameIndex = yourstring.lastIndexOf("/") + 1;
var filename = yourstring.substr(fileNameIndex);
var Filename= path.split('/').pop()
function getFileName(path) {
return path.match(/[-_\w]+[.][\w]+$/i)[0];
}
В Javascript вы могли бы сделать
function getFileNameFromPath(path) {
var ary = path.split("/");
return ary[ary.length - 1];
}
Я нашел лучшую версию для обработки unix и оконных строк в стиле Windows.
Номер 1:
var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.replace(/^.*[\\\/]/, ''));
var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.replace(/^.*[\\\/]/, ''));
Выход будет cat.jpg
Номер 2: (возможно, быстрее)
var unix_path = '/tmp/images/cat.jpg';
console.log(unix_path.split(/[\\\/]/).pop());
var win_path = 'c:\\temp\images\cat.jpg';
console.log(win_path.split(/[\\\/]/).pop());
Выход будет cat.jpg
Используя это решение, вы можете получить оба имени, то есть с расширением файла и без него.
//getting image source var path=$('img.my_image').attr('src'); //splitting url and getting filename with file extension var file=path.split('/').pop(); //removing extension and keeping just the filename var filename=file.split('.').shift();