分别解析图像URL和其他URL

时间:2016-10-03 22:46:48

标签: javascript regex string parsing

我有一个javascript函数,它将占用一大块用户输入,并用HTML图像替换所有图像URL,以及所有其他带有HTML链接的URL。唯一的问题是,我的解决方案很难看! :P

这是我目前的策略:

使用正则表达式首先使用位置标记替换文本中的所有图像URL,例如“#IMG [1] IMG#”,然后将图像的URL存储在数组中,以便以后可以替换。

然后,正常的URL被正则表达式替换。之后,图像占位符将替换为相应的图像标记。

这很有效,但它真的很乱。只做2个正则表达式字符串替换会很棒,但是当普通URL被链接替换时,图像URL会被破坏。

对于更优雅地解决这个问题的策略的任何想法都将非常感激。当然,如果我能得到一个正则表达式找到所有URL而不获取图像URL,那也可以解决我的问题。以下是我目前用于查找网址的正则表达式:

/((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))/g

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))(?<!jpg)(?<!png)(?=\s|$|'|")

并为查找不是图像的URL时要跳过的每个图像扩展添加其他图像扩展。