no-invalid-regexp
禁止在 RegExp
建構函式中使用無效的正規表示式字串
✅ 建議
在設定檔中使用 @eslint/js
的 recommended
設定會啟用此規則
正規表示式常值中的無效模式在程式碼剖析時會產生 SyntaxError
,但是 RegExp
建構函式中的無效字串只有在程式碼執行時才會拋出 SyntaxError
。
規則詳情
此規則禁止在 RegExp
建構函式中使用無效的正規表示式字串。
此規則的不正確程式碼範例
在遊樂場中開啟
/*eslint no-invalid-regexp: "error"*/
此規則的正確程式碼範例
在遊樂場中開啟
/*eslint no-invalid-regexp: "error"*/
RegExp('.')
new RegExp
this.RegExp('[')
請注意,無論您的解析器設定為何,此規則都會根據最新的 ECMAScript 規範驗證正規表示式。
如果您因任何原因要允許額外的建構函式旗標,您可以使用 allowConstructorFlags
選項指定它們。這些旗標隨後將被此規則忽略。
選項
此規則有一個用於例外的物件選項
"allowConstructorFlags"
是區分大小寫的旗標陣列
allowConstructorFlags
使用 { "allowConstructorFlags": ["a", "z"] }
選項時,此規則的正確程式碼範例
在遊樂場中開啟
/*eslint no-invalid-regexp: ["error", { "allowConstructorFlags": ["a", "z"] }]*/
new RegExp('.', 'a')
new RegExp('.', 'az')
版本
此規則是在 ESLint v0.1.4 中引入的。