JSFiddle - React, Tailwind, and code Playground
HTML
картинка<img src="http://vkontakte.ru/images/toplink.gif"><hr>
это было уже ссылкой<br>
<a href="http://google.ru">href to <b>www.google.ru</b></a>
<hr>
<u>ссылки текстом</u>
<br>
просто ссылка текстом на vk.ru<hr>
и на гугл карту <br>
http://maps.google.ru/maps/place?q=59.944215,30.307012
<hr>
ссылка текстом в элементе с атрибутами
<br>
<i onclick="alert('Приятного просмотра');">http://wiki.winehq.org/UsefulRegistryKeys</i>
JavaScript
prohibited = ['a','img'];
a=/(?:<(\w+)(.*?)(?:(?:src=")|>))?\s*((?:http:\/\/)?(?:www)?((?:\w+\.)+\w+)(?:\/\w+(?:\.\w+)?)*(?:\?[\w\d%=&,\.;]+)?)\s*("|<)?/gi;
b=function(a, tagname,attrs, url, domain, end){
for(var i=0;i<prohibited.length;i++) {
if(typeof prohibited[i]=="string")
prohibited[i] = new RegExp(prohibited[i],'i');
if(prohibited[i].test(tagname))
return a;
};
url = url.replace(/&/g,'&');
return (tagname?('<'+tagname+(attrs||'')+'>'):'')+domain.link(url)+(end||'');
};
document.body.innerHTML = document.body.innerHTML.replace(a,b);