SyntaxError: invalid class set operation in regular expression

当双标点符号序列出现在v模式字符类中,但语法无法识别时,就会发生 JavaScript 异常“正则表达式中无效的类集操作”。

消息

SyntaxError: Invalid regular expression: /[&&]/v: Invalid set operation in character class (V8-based)
SyntaxError: invalid class set operation in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid operation in class set (Safari)

错误类型

哪里出错了?

这有三种可能的情况

  • 您正在尝试使用 &&--,但语法错误。每个运算符都必须连接两个字符或字符集。
  • 您在同一级别混合了运算符。例如,[\w&&[A-z]--_] 无效,因为它在同一级别使用了 &&--。您需要使用嵌套字符类来消除歧义,例如 [\w&&[[A-z]--_]]。请注意,联合运算使用没有文本的运算符;例如,[AB&&C] 无效,因为 AB 由联合运算符隐式连接。您需要改为使用 [A[B&&C]]
  • 您正在使用不是 &&-- 的双标点符号序列。这些序列保留用于将来的语法扩展。它们包括:&&!!##$$%%**++,,..::;;<<==>>??@@^^``~~。但是,这些序列本身也没有多大意义,要么可以用单个字符替换,要么会导致两个相邻的范围合并。

另请参阅