SyntaxError: invalid character in class in regular expression
当字符出现在v 模式字符类中但又不允许以字面量形式出现时,就会发生 JavaScript 异常“正则表达式中的字符类中包含无效字符”。
消息
SyntaxError: Invalid regular expression: /[|]/v: Invalid character in character class (V8-based) SyntaxError: invalid character in class in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid class set character (Safari)
错误类型
SyntaxError
哪里出错了?
通常,字符类可以几乎包含所有字符的字面量。然而,v 模式使字符类语法更加复杂,为了给未来的语法扩展留出空间,一些语法字符被禁止以字面量形式出现在字符类中。它们包括:(、)、[、]、{、}、/、-、|。如果你想匹配这些字面量字符,请对其进行转义;例如:/[\|]/v。
示例
无效案例
js
/[(){}]/v;
有效情况
js
/[\(\)\{\}]/v;