RegEx用文本标记替换文本URL链接

时间:2015-01-13 23:53:31

标签: javascript jquery regex hyperlink

我知道这个问题与之前被问过的问题非常相似,但它并不完全相同,不应该这样对待(请mods / admins)。

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

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

例如,如果在文本中找到了像http://www.example.com/images/logo.jpg这样的链接,那么它会将其转换为图片代码,但显然会使用src =""包含该网址。原因我要问的是我正在进行的聊天项目我希望将指向图像的文本链接转换为实际图像,就像Facebook在时间轴上所做的那样。

以下是我使用并添加到Linkify功能的第四个RegEx模式:

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

然而,这根本不起作用!任何人的想法??

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

JSFiddle