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]是无效的,因为A和B通过并集运算符隐式连接。您需要改用[A[B&&C]]。 - 您正在使用不是
&&或--的双标点符号序列。这些序列是为将来的语法扩展保留的。它们包括:&&、!!、##、$$、%%、**、++、,,、..、::、;;、<<、==、>>、??、@@、^^、``、~~。然而,这些序列无论如何都没有多大意义,并且可以被单个字符替换,或者导致两个相邻的范围合并。