Трудно точно сказать, что делать, поскольку я не знаю, что вы ищете.
Если ссылки в настоящее время являются частью тега, это будет просто.
Но похоже, что hrefs изображения в настоящее время не являются частью какого-либо тега. Это верно?
Если это так, и вы думаете, что вам нужен reg exp, вы можете попробовать,
var result = text.match(/http:\/\/\S+(\.png|\.jpg|\.gif)/g);
(Это простой, который, я уверен, может быть немного ужесточен. Как таковой, он не допустит, например, символы «пробел» в href.)
Он будет искать 'http://' плюс все, кроме пробела плюс' .png 'или' .jpg 'или' .gif ', и вернет массив результатов.
Так что, если текст поиска был:
var text = 'http://sstatic.net/so/img/logo.png some text http://l.yimg.com/a/i/ww/news/2010/02/22/fries_on_plate-pd.jpg more text http://l.yimg.com/this/is/another/path/to_this_image.jpg';
Будет возвращен массив из 3 результатов.
Используя jQuery (так как вы пометили его), вы можете:
var $aTag;
for(i in result) {
$aTag = $('<a><img src="/SomeDefaultImageThumb.jpg" /></a>').attr({'href': result[i]});
$('body').append($aTag);
}
Который будет добавлять новые теги, в данном случае, к телу.
РЕДАКТИРОВАТЬ: используя ваш пример, я добавил круглые скобки вокруг поискового запроса и сослался на него с href = "$ 1" в строке замены -
В строку поиска добавлен дополнительный набор скобок. Это создает «запомненную» группу, на которую ссылается $ 1.
$("div.test").each(function() {
$(this).html($(this).html().replace(/(http:\/\/\S+(\.png|\.jpg|\.gif))/g, '<a href="$1"><img src="/SomeDefaultImageThumb.jpg" /></a>'));
});
Это может иметь последствия для безопасности, если вредоносный код может быть скрыт в строке ссылки. Не уверен, хотя. Если это проблема, должен быть другой способ.
РЕДАКТИРОВАТЬ: Исключает ссылки из домена сайта (при условии, что они являются частью того же текста, который ищется) .
var hostname = window.location.hostname.replace(/\./g,'\\.');
var re = new RegExp('(http:\\/\\/[^' + hostname + ']\\S+[\\.png|\\.jpg|\\.gif])','g');
$("div.test").each(function() {
$(this).html($(this).html().replace(re, '<a href="$1"><img src="/SomeDefaultImageThumb.jpg" /></a>'));
});