Как получить имя изображения с помощью jQuery?
Пусть говорит, что у меня есть:
<img src='static/images/banner/blue.jpg' />
Используя jQuery, как я могу получить данные blue
?
Если я использую $('img').attr('src')
, я могу получить весь URI. В этом случае, что лучший способ удалить расширение и весь путь?
Ответы
Ответ 1
Здесь есть пара: локальные файлы могут использовать другую косую черту ('\') в имени пути, а некоторые имена файлов могут содержать хеш или поисковые хвосты или не иметь расширение.
String.prototype.filename=function(extension){
var s= this.replace(/\\/g, '/');
s= s.substring(s.lastIndexOf('/')+ 1);
return extension? s.replace(/[?#].+$/, ''): s.split('.')[0];
}
console.log($('img').attr('src').filename());
Ответ 2
Regex будет вашим лучшим другом здесь...
var filename = fullUri.replace( /^.*?([^\/]+)\..+?$/, '$1' );
Ответ 3
Просто разделите строку:
var src = $('img').attr('src'); // "static/images/banner/blue.jpg"
var tarr = src.split('/'); // ["static","images","banner","blue.jpg"]
var file = tarr[tarr.length-1]; // "blue.jpg"
var data = file.split('.')[0]; // "blue"
Ответ 4
var src = $('img').attr('src').split('/');
var file = src[src.length - 1];
Должен работать
Ответ 5
Скажем, что у нас есть:
<img src="path/to/awesome/image/foobar.jpg" />
Вот что мы делаем, чтобы извлечь имя файла:
Array.prototype.filename = function() {
var tmp = this.split('/');
return tmp[tmp.length-1].match(/(.*)\.[\w]+$/)[1];
});
$('img').attr('src').filename();
Результат:
console.log(name); // foobar
Ответ 6
src = $('img').attr('src');
src_array = src.split('/');
src = src_array[src.length-1];
Ответ 7
var src= $('img').attr('src');
var name = src.match(/static\/images\/banner\/(.*)\.jpg/)[1];