针对未出现在引号中的网址的正则表达式? (JavaScript的)

时间:2012-06-03 06:41:10

标签: javascript jquery regex web

目前我有一个正则表达式,可以在html块中找到所有URL。它看起来像这样:

elementHTML.match(/(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/ig);

检测到网址后,会将其替换为以下内容:

<div data="URL_THAT_WAS_DETECTED">Information about that url</div>

数据属性是自定义添加的。

如何在不获取以前检测到的网址的情况下继续查找网址?

理想情况下,我想要忽略引号或可能是html标签的URL,但我愿意接受建议。

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

这个正则表达式会这样做:

 /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+(?![^\s]*?")([\w.,@?^=%&amp;:\/~+#-]*[\w@?^=%&amp;\/~+#-])?/ig

我为双引号"字符添加了负面预测。

Live Demo