SyntaxError: negated character class with strings in regular expression
當 v 模式字元類 被否定並且可能匹配字串(多個字元)時,會發生 JavaScript 異常“正則表示式中帶字串的否定字元類”。
訊息
SyntaxError: Invalid regular expression: /[^\p{RGI_Emoji_Flag_Sequence}]/v: Negated character class may contain strings (V8-based)
SyntaxError: negated character class with strings in regular expression (Firefox)
SyntaxError: Invalid regular expression: negated class set may contain strings (Safari)
錯誤型別
SyntaxError
哪裡出錯了?
在 v 模式下,字元類能夠匹配一個以上的字元。例如,/[\q{abc}]/v 將匹配序列 "abc",而 /[\p{RGI_Emoji_Flag_Sequence}]/v 將匹配任何表示表情符號旗幟的字元序列。然而,否定字元類 [^...] 不允許匹配字串,因此 /[^\p{RGI_Emoji_Flag_Sequence}]/v 是無效的,因為它不清楚應該匹配多少個字元。有關更多資訊,請參閱 v 模式字元類 參考。
示例
無效案例
js
/[^\p{RGI_Emoji_Flag_Sequence}]/v;
有效情況
js
// Matches two characters that are not an emoji flag sequence
/(?!\p{RGI_Emoji_Flag_Sequence})../v;