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)
错误类型
哪里出错了?
通常,字符类可以包含几乎所有字符的字面值。但是,v
模式使字符类语法更加复杂,为了为将来的语法扩展预留空间,某些语法字符被禁止在字符类中字面出现。它们包括:(
、)
、[
、]
、{
、}
、/
、-
、|
。如果要匹配这些字面字符,请对其进行转义;例如:/[\|]/v
。
示例
无效情况
js
/[(){}]/v;
有效情况
js
/[\(\)\{\}]/v;