获取没有“.jpg”部分的文件名

时间:2013-11-14 16:16:21

标签: jquery autoload file-rename slimbox

好的我正在使用slimbox2并希望用户能够保存图像的高分辨率版本。 将其添加到.js文件允许使用标题中的链接保存EXACT相同的图像:

    // 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));
    });
    });

但是我希望用户能够在名称中添加“lg”来保存高分辨率版本。

例如,不是下载显示的“image1.jpg”,而是下载“image1lg.jpg”

上面的代码使用el.href将图像加载到链接中,但是如果我使用+'lg',则会添加BEHIND .jpg,因此我得到“image1.jpglg”,这将无效。

有没有办法重写el.href,然后从名称中减去“.jpg”,然后将“lg.jpg”添加到文件名中?

希望这是有道理的,谢谢你的时间。

3 个答案:

答案 0 :(得分:0)

这个答案并不是最终的答案,但它确实解决了您的具体问题。

如果文件名具有多个句点

,则此脚本将基本失败

是的,有一个Javascript 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];

答案 1 :(得分:0)

如果lg始终是扩展名前文件名的最后一部分,请尝试以下操作:

return [el.href, el.title + '<br /><a href="' + el.href.replace(/\.jpg$/i, 'lg.jpg') + '">Download this image</a>'];

答案 2 :(得分:0)

我会使用javascript的replace功能。您可以匹配字符串或正则表达式并将其替换为您想要的任何内容,在这种情况下匹配'.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));
    });
});