正则表达式前面部分的负匹配



我正在尝试编写一个与文件名匹配的正则表达式,例如:

image.png
image.svg
image.gif

但是,如果我的扩展前面有.inline,我不希望它匹配,如下所示:

image.inline.png
image.inline.svg
image.inline.gif

我当前的正则表达式与前三个匹配,如下所示:/.(gif|png|svg)$/- 但是,我在为前面的.inline添加负面条件时遇到问题。

提前感谢您的任何建议。

我也会使用负面的展望,但我的措辞略有不同:

var term = "image.inline.png";
var re = new RegExp("^(?!.*\.inline\.[^.]+$).*\.(?:gif|png|svg)$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}

您可以使用负前瞻来检查前面的.inline。在这里看到它的实际效果。

^w+(?!.inline).(gif|png|svg)$

最新更新