JS正则表达式没有以

时间:2017-12-14 13:34:07

标签: javascript regex

我跟随正则表达式匹配网址:

/(https?:\/\/[^"<\s]+[^.<\s"()][-A-Za-z0-9+&@#\/%=~_|])(?![^<>]*>|[^"]*?<\/a)/gi

谁匹配两个网址:

http://example.fr/image.png
http://example.fr/image.pdf

这是我们应用程序的特定正则表达式,我希望保留它,但只需添加一个功能。

问题:我想忽略以.png结尾的网址。

有可能吗?

1 个答案:

答案 0 :(得分:2)

是的,有可能。

在结尾使用负面的lookbehind,并强制它匹配整个字符串:

var arr = ["cinema"];

arr[1].sort();
console.log(arr[1]);

Try it online

如果当前位置不在匹配(https?:\/\/[^"<\s]+[^.<\s"()][-A-Za-z0-9+&@#\/%=~_|])(?![^<>]*>|[^"]*?<\/a)(?<!\.png)$ 的匹配项之前,则负向后视(?<!\.png)是零宽度匹配。 \.png强制正则表达式匹配整行。