从图像源中删除最后一个字符

Remove the last characters from image source

我正在构建一个包含大量大图片的 Wordpress 网站。 通过加载 wordpress 生成的图像的 'large' 版本,我认为我可以最小化页面加载而不是获取它们的完整大小。但是在台式机上,我希望加载全尺寸图像而不是 'large' 大小的图像。

如果在桌面上加载页面,我使用以下代码更改图像源:

$('img').each(function() {
    var src = $(this).attr('src');
    $(this).attr('src', src.replace(/-1024x682(\.[^.]+)?$/, ''));
});

但是由于所有图片的 'large' 分辨率都不是 1024x682,所以我需要另一种方法来解决我的问题。是否可以不替换图像 src 中的 -1024x682,只删除最后 9 个字符(当然是在文件扩展名之前)?

如果您更喜欢正则表达式:

$(this).attr('src', src.replace(/-[0-9x]+(?=\.jpg)$/, ''));

这将允许任何 numbers/size 分辨率。

您可以将代码更新为如下所示

var src = $(this).attr('src');
var extension = src.substring(src.lastIndexOf(".")); // gets the extension
var imageName = src.substring(0, src.lastIndexOf(".")); // gets the file name
imageName = imageName.replace(imageName.substring(imageName.length-9), ""); // replace the last 9 characters with empty string
$(this).attr('src', imageName + extension);