SyntaxError: invalid regexp group

當序列 (? 沒有以有效的組語法開頭時,會發生 JavaScript 異常“invalid regexp group”。以 (? 開頭的公認組語法包括:

(? 後跟任何其他字元都會導致此錯誤。

訊息

SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based)
SyntaxError: invalid regexp group (Firefox)
SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)

錯誤型別

SyntaxError

哪裡出錯了?

? 不是原子,因此它出現在捕獲組的開頭是沒有意義的(? 是一個量詞,應該放在原子之後)。也許您想字面匹配 ? 字元,在這種情況下,您應該用反斜槓 (\?) 對其進行轉義。也許您記錯了正則表示式語法,並且打算使用上面列出的公認組語法之一。也許您正在使用當前 JavaScript 引擎不支援的功能。

示例

無效案例

js
/Hello(?|!)/;
// This is Perl syntax
/(?[\p{Thai}&\p{Digit}])/;

有效情況

js
/Hello(\?|!)/;
// This is JavaScript syntax for character set operations
/[\p{Thai}&&\p{Digit}]/v;

另見