我想实现一个不以(.js | .jsx | .scss)结尾的JavaScript RegEx,执行结果如下所示,但是RegEx之前没有运算符!
。
!/(.js|.jsx|.scss)$/
答案 0 :(得分:4)
您需要对替换进行否定的查找,以拒绝以您在帖子中提到的扩展名结尾的字符串。试试这个正则表达式,
^(?!.*(?:\.jsx?|\.scss)$).*$
var arr = ['abc.js','xyz.jsx','ddd.scss','abc.jsa','xyz.jsxa','ddd.scssd'];
for (s of arr) {
console.log(s+' --> '+/^(?!.*(?:\.jsx?|\.scss)$).*$/.test(s));
}
答案 1 :(得分:0)
您可以使用
^(?!.*\.(?:jsx?|scss)$).*$
^
-字符串开头的锚点。(?!.*\.(?:jsx?|scss)$).*
-检查jsx, js and scss
$
-字符串结尾。