SyntaxError: invalid regexp group
The JavaScript exception "invalid regexp group" occurs when the sequence(?
does not start a valid group syntax. Recognized group syntaxes that start with(?
include:
(?:
fornon-capturing groups(?=
forpositive lookahead(?!
for negative lookahead(?<=
forpositive lookbehind(?<!
for negative lookbehind(?<
fornamed capturing groups(?-i:
,(?i:
,(?m:
,(?ims-:
, etc. formodifiers
(?
followed by any other character would cause this error.
Message
SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based)SyntaxError: invalid regexp group (Firefox)SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)
Error type
What went wrong?
?
is not anatom, so it does not make sense to appear at the start of acapturing group (?
is aquantifier and should be placed after an atom). Maybe you want to match the?
character literally, in which case you should escape it with a backslash (\?
). Maybe you remembered the regex syntax wrong, and you intend to use one of the recognized group syntaxes listed above. Maybe you are using a feature that is not supported by the current JavaScript engine.
Examples
Invalid cases
js
/Hello(?|!)/;// This is Perl syntax/(?[\p{Thai}&\p{Digit}])/;
Valid cases
js
/Hello(\?|!)/;// This is JavaScript syntax for character set operations/[\p{Thai}&&\p{Digit}]/v;