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