Получение имени файла без части ".jpg"
Хорошо, я использую slimbox2 и хочу, чтобы пользователь мог сохранить версию изображения в высоком разрешении. Добавление этого в файл.js позволяет сохранить ТОЧНОЕ изображение с ссылкой в заголовке:
// AUTOLOAD CODE BLOCK (MAY BE CHANGED OR REMOVED)
jQuery(function($) {
$("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) {
return [el.href, el.title + '<br /><a href="' + el.href + '">
Download this image</a>'];
}, function(el) {
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
});
});
Однако я хочу, чтобы пользователь мог сохранить версию Hi-Res, просто добавив к имени "lg".
например, вместо загрузки "image1.jpg", который отображается, он загружает "image1lg.jpg"
Приведенный выше код использует el.href для загрузки изображения в ссылку, но если я использую + 'lg', он добавляет, что позади.jpg, поэтому я получаю "image1.jpglg", который не будет работать.
Есть ли способ получить могилу el.href, а затем вычесть из имени только ".jpg", а затем добавить "lg.jpg" к имени файла?
Надеюсь, что это имеет смысл, спасибо за время.
3 ответа
Если lg
всегда является последней частью имени файла перед расширением, попробуйте это:
return [el.href, el.title + '<br /><a href="' + el.href.replace(/\.jpg$/i, 'lg.jpg') + '">Download this image</a>'];
Этот ответ не является окончательным, но он решает ваш конкретный вопрос.
Этот скрипт по существу не будет работать, если имя файла имеет более одного периода
Да есть джаваскрипт split()
функция:
// The file
var string = 'filename.jpg'
// Split on periods
var parts = string.split('.');
// parts[0] = filename
// parts[1] = jpg
// Bring the string back together and add an 'lg' where needed
var new_string = parts[0]+'lg.'+parts[1];
Я бы использовал функцию замены в JavaScript. Вы можете сопоставить строковое или регулярное выражение и заменить его чем угодно, в этом случае сопоставив ".jpg" и заменив его "lg.jpg".
jQuery(function($) {
$("a[rel^='lightbox']").slimbox({/* Put custom options here */}, function(el) {
return [el.href, el.title + '<br /><a href="' + el.href.replace('.jpg', 'lg.jpg') + '"> Download this image</a>'];
}, function(el) {
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
});
});