JavaScript RegExp排除特定的文件扩展名和index.js

时间:2017-09-22 21:58:47

标签: javascript regex regex-lookarounds

这是我目前的RegExp:

/^(?!index).*js/gmi

这是RegExp应用于的列表:

test/test.js
hey/test-bundle.js
test/test-heybundle.js
test/index.js
test/indop.js
lollipop/testindex.js
test/test.scss
test/test.css
lalilu/hey.yml
test.js

应该做什么:

  • 仅匹配以* .js
  • 结尾的文件
  • 排除文件名index.js
  • 排除以“-bundle.js”结尾的文件
  • 仅匹配位于目录中的文件(例如/test/test.js,而不是test.js

我非常感谢任何有助于使RegExp按预期工作的帮助。

1 个答案:

答案 0 :(得分:3)

random[0] = random[0] ^ something[0] ^ something[4] .... random[1] = random[1] ^ something[1] ^ something[5] ... ... and so on

https://regex101.com/r/Yqaajy/1

/^[a-z]+\/(?!index\.js$)[a-z]+(?!-bundle)(?:-[a-z]+)?\.js$/gm - 匹配父目录(假设目录分隔符始终为^[a-z]+\/)。

/ - 如果父目录后跟(?!index\.js$)和行尾,则匹配失败。

index.js - 一个或多个字母后跟[a-z]+(?!-bundle)

-bundle - 连字符后面的文件名的第二部分。如果您的文件包含超过2个带连字符的部分,请将(?:-[a-z]+)?更改为?

* - 文件扩展名和行尾。