我正在尝试编写一个与文件名匹配的正则表达式,例如:
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)$