使用 jQuery 从图像中删除 pagespeed 模块扩展

Strip pagespeed module extension from image with jQuery

我的网站上有这个 jQuery 功能,可以为图像添加 在 Facebook 上分享按钮,效果很好。

问题是,现在我已经在我的服务器上安装了 Google 的 Pagespeed 模块,以加快速度。像魅力一样工作,除了一件事:

图片现在获得 pagespeed 扩展,Facebook 似乎不喜欢它。

所以,我正在寻找的是一个获取图像 src 的函数(这已经存在),剥离添加的 pagespeed 扩展,并发回 "original" 图像 src。

我正在这样获取图像 src:

img = $(this).attr('src');

我没有的是在这个函数之后去掉 pagespeed 扩展的函数。

google pagespeed 图像看起来像这样:

http://my-site.com/wp-content/uploads/700x524ximagename700x524.jpg.pagespeed.ic.9rlwkDUtDK.webp

问题是,有两部分需要去掉:

700x524x 出现在图像名称之前...

...以及文件扩展名 之后的所有内容 (.pagespeed.ic.9rlwkDUtDK.webp)

是否有专家可以建议我解决这个问题?

谢谢!

// 詹斯

您可能想要使用正则表达式来匹配您想要(和不想)保留的字符串部分,然后您可以使用反向引用来提取原始文件名。这里的文件名将在匹配的组中,</code>.</p> <pre><code>\d*x\d*x(.*)\.pagespeed.*

参见 https://regex101.com/r/jR8fI3/1

中的示例

在javascript中:

var image = "700x524ximagename700x524.jpg.pagespeed.ic.9rlwkDUtDK.webp";
var original = image.replace(/\d*x\d*x(.*)\.pagespeed.*/, "");
alert(original);

参见 http://jsfiddle.net/1afhzfxa/

中的示例