SyntaxError: 正则表达式中不允许使用原始括号且带有 Unicode 标志
当 Unicode 感知 正则表达式模式包含不是 量词 或 字符类 的一部分的原始括号 ({
、}
、]
) 时,会发生 JavaScript 异常 "raw bracket is not allowed in regular expression with unicode flag"。
消息
SyntaxError: Invalid regular expression: /{/u: Lone quantifier brackets (V8-based) SyntaxError: raw bracket is not allowed in regular expression with unicode flag (Firefox) SyntaxError: Invalid regular expression: incomplete {} quantifier for Unicode pattern (Safari) SyntaxError: Invalid regular expression: unmatched ] or } bracket for Unicode pattern (Safari)
错误类型
哪里出错了?
示例
无效情况
js
/{{MDN_Macro}}/u;
/\[sic]/u;
有效情况
js
// All { and } need to be escaped
/\{\{MDN_Macro\}\}/u;
// The ] needs to be escaped
/\[sic\]/u;