用图像标签替换文本 url link 的正则表达式

RegEx to replace text url link with image tag

我知道这个问题与之前提出的问题非常相似,但并不完全相同,不应如此对待(请mods/admins)。

我目前正在使用我在此处发布的一段代码中找到的 Linkify() 函数,但它不包含图像的正则表达式。它仅涵盖 http、https 和 mailto,但不涵盖可能包含图像的 link。

基本上我要问的是,是否有一个我可以添加到该函数的正则表达式(已经有 3 个模式,所以其中一个图像将被替换为 Pattern4),它只会检查图像 link ?

例如,如果它在文本中找到 link,例如 http://www.example.com/images/logo.jpg,那么它会将其转换为图像标签,但显然带有包含 url 的 src=""。我问的原因是我正在处理的聊天项目我想将指向图像的文本 link 转换为实际图像,就像 Facebook 在时间轴上所做的那样。

这是我正在使用并作为第四个 RegEx 模式添加到 Linkify 函数的内容:

replacePattern4 = /(\b(http):\/\/.(?:jpg|png|gif))</
replacedText = replacedText.replace(replacePattern4, '<img src="" height="100" width="100" />');

然而,这根本不起作用!大家有什么想法吗??

这里的任何帮助都会很好,请记住 Linkify 已经使用的代码。

谢谢!

为什么不直接使用 jQuery 的 attribute-ends-with selector。例如

$('a[href$=".jpg"], a[href$=".png"], a[href$=".gif"]').each(function() {
    $(this).replaceWith($('<img>').attr('src', this.href));
});

JSFiddle