javascript合并正则表达式

时间:2017-06-08 08:58:40

标签: javascript regex

/^\.\/(?!main(\.js)?$)/ 表示需要除./main.js以外的所有src文件时, /^\.\/(?!style.*)/ 表示需要除./style/*

以外的所有src文件

然后我使用/^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/想要除./main.js./style/*之外的所有src文件但不能正常工作

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您不需要重复消费模式,只需将条件置于否定前瞻中:

/^\.\/(?!style|main(\.js)?$)/
       ^^^^^^^^^^^^^^^^^^

请参阅regex demo

<强>详情:

  • ^ - 字符串开头
  • \.\/ - ./子字符串
  • (?!style|main(\.js)?$) - 如果在当前位置的右侧立即失败,则会出现以下情况:
    • style - 文字style子字符串
    • 字符串末尾的
    • main(\.js)?$ - mainmain.js个子字符串($

但是,您注意到style应该在要求中跟/,但您的正则表达式没有该检查。您可以在(\/|$)之后追加style来强制执行该检查(/后面的style或字符串结尾应该出现:

/^\.\/(?!style(\/|$)|main(\.js)?$)/

使用此正则表达式./style-main.js will be matched