我正在尝试编写一个与文件名匹配的正则表达式,例如:
image.png
image.svg
image.gif
但是,如果我的扩展名前面有.inline
,我不希望它匹配,就像这样:
image.inline.png
image.inline.svg
image.inline.gif
我当前的正则表达式与前三个匹配,就像这样:/\.(gif|png|svg)$/
-但是,我很难为前面的.inline
添加否定条件。
预先感谢您的任何建议。
答案 0 :(得分:1)
您可以使用否定的超前查询来检查前面的.inline
。在操作here中查看它。
^\w+(?!\.inline)\.(gif|png|svg)$
答案 1 :(得分:1)
我还会使用否定的前瞻,但我的说法会略有不同:
var term = "image.inline.png";
var re = new RegExp("^(?!.*\\.inline\\.[^.]+$).*\\.(?:gif|png|svg)$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}