URL 到图像转换

URL to image transformation

提问人:Sir D 提问时间:6/12/2012 更新时间:6/12/2012 访问量:690

问:

我使用此函数在输出时将 URL 转换为图像。

function InsertLink(T){
 var Out = '';
 var T1=T;
 var LinkR = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?([^?#]*\.(?:jpg|jpeg|gif|png))/;
 var Pos=0;
 for(var N=0;(N=T1.search(LinkR))!==-1;){
    var S1 = T1.match(LinkR)[0];
    var S1L = S1.length;
    Out += T1.substr(0,N)+"<a href='"+S1+"' target='_blank'><img class='sml' src='"+S1+"' /></a><br />";
    T1 = T1.substr(N+S1L);
    Pos=N+S1L;
 };
 Out+=T1;
 return Out;
}

但它仅适用于帖子正文中的一个 URL。如果文本包含多个网址,则所有网址都会附加到一张图片(“损坏”的图片)。

怎么了?

JavaScript的

评论

0赞 sparebytes 6/12/2012
我看到你甚至没有使用.试试这个:替换为 or thisPosvar S1 = T1.match(LinkR)[0];var S1 = T1.match(LinkR)[Pos];var S1 = N[0];
0赞 Sir D 6/12/2012
谢谢,但使用 Pos 没有效果。
0赞 sparebytes 6/12/2012
整个过程可以使用 replace 函数在一行代码中完成
0赞 sparebytes 6/12/2012
为了确保您知道,我正在使用不同的正则表达式,它选择任何 URL,而不仅仅是图像,所以我更新了它:jsfiddle.net/C3zF6/1

答:

2赞 sparebytes 6/12/2012 #1

参见 jsFiddle 了解如何操作,您需要的代码在函数中replaceWithImgLinks

http://jsfiddle.net/C3zF6/1/

我无法让您的正则表达式工作,所以我使用了这里的正则表达式:什么是匹配 URL 的好正则表达式?