SyntaxError: incomplete quantifier in regular expression

当正则表达式模式包含 {,但它没有开始一个有效的量词时,会发生 JavaScript 异常“正则表达式中量词不完整”。

消息

SyntaxError: Invalid regular expression: /1{/u: Incomplete quantifier (V8-based)
SyntaxError: incomplete quantifier in regular expression (Firefox)
SyntaxError: Invalid regular expression: incomplete {} quantifier for Unicode pattern (Safari)

错误类型

SyntaxError

哪里出错了?

正则表达式模式中的 { 字符表示一个量词的开始。一个有效的量词格式为 {n}{n,}{n,m},其中 nm 是非负整数,且 m 不小于 n。如果 { 字符没有开始一个有效的量词,则会发生 SyntaxError

在非 Unicode 感知模式下,此语法会导致 { 成为字面字符,而不是生成错误,但这是一个已弃用的语法,不应依赖它。

示例

无效案例

js
/1{/u;
/1{a}/u;
/1{}/u;
/1{1,2,3}/u;
/1{1, 2}/u;

有效情况

js
/1{1}/u;
/1{1,}/u;
/1{1,2}/u;

另见