.spec文件的JavaScript Regex Lookahead

时间:2016-04-05 00:47:24

标签: javascript regex lookahead

我想省略.spec.js文件并删除.js文件。我有这个,但它不起作用:

(?!.*\.spec\.js$)*.js')

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用positive lookahead查看.spec之前是否存在.js并相应地过滤掉它。此正则表达式仅匹配.exec.js个文件。

正则表达式: .*?(?=\.spec).*?\.js

<强>解释

  • .*?与文件名匹配。

  • 如果(?=\.spec)存在,
  • .spec会消极地回顾。如果是,则将丢弃整个匹配。

  • .*?\.js最后匹配文件名和.js扩展名的其余部分。

<强> Regex101 Demo

,不使用lookahead

正则表达式: .*?(\.spec).js

<强>解释

  • .*?匹配初始文件名。

  • (\.spec)匹配.spec(如果有)。

  • .js分机。

<强> Regex101 Demo

答案 1 :(得分:1)

我不这样就可以获得所有的* .js文件,同时在没有lookbehind的单个正则表达式中省略* .spec.js文件。或者你可以使用两个调用endsWith():

filename.endsWith('.js') && !filename.endsWith('.spec.js')