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)

错误类型

SyntaxError

哪里出错了?

这可能有三种情况

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

另见