【发布时间】:2018-08-31 08:59:55
【问题描述】:
我有这个正则表达式:
/(?!")(https?:\/\/\S*\.(?:gif|jpg|jpeg|tiff|png|svg|webp)(\?([\w=&_%\-]*))?)(?!")/gi
匹配http://example.com/image.png之类的图片url,但如果url被引号"包围,则不匹配,例如<a href="http://example.com/image.png"></a>不应该匹配。
现在我有一个特殊情况:
<a href="https://i.gifer.com/Vs5X.gif"></a>
通常不应该匹配(因为用引号括起来),但是因为域名包含.gif,它仍然匹配https://i.gif。
是否可以使此正则表达式匹配 https://i.gifer.com/Vs5X.gif 但不匹配 <a href="https://i.gifer.com/Vs5X.gif"></a>(因为用引号括起来)?
例如:
<a href="https://i.gifer.com/Vs5X.gif"></a>
-> should NOT match
foo https://i.gifer.com/Vs5X.gif bar
-> should match: https://i.gifer.com/Vs5X.gif
<a href="https://google.com/image.gif"></a>
-> should NOT match
foo https://google.com/image.gif bar
-> should match: https://google.com/image.gif
【问题讨论】:
-
您是否尝试解析 HTML 图像元素并获取它们的
src? -
@chŝdk 我只是想知道一个字符串是否包含:一个 URL 或一个用引号括起来的 URL。
标签: javascript regex