簡體   English   中英

獲取不帶“ .jpg”部分的文件名

[英]Geting a file name without the “.jpg” part

好的,我正在使用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));
    });
    });

但是,我希望用戶能夠通過在名稱中添加“ lg”來保存高分辨率版本。

例如,下載的是“ image1lg.jpg”,而不是下載顯示的“ image1.jpg”

上面的代碼使用el.href將圖像加載到鏈接中,但是如果我使用+'lg',則會在BEHIND .jpg后面添加內容,因此我得到了“ image1.jpglg”,它將無法正常工作。

有沒有一種方法可以對el.href進行雕刻,然后從名稱中減去“ .jpg”,然后將“ lg.jpg”添加到文件名中?

希望有道理,謝謝您的時間。

這個答案不是萬能的,但確實可以解決您的特定問題。

如果文件名包含多個句點,則該腳本實際上將失敗

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

如果lg始終是擴展名前文件名的最后一部分,請嘗試以下操作:

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

我會使用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));
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM