版本

no-invalid-regexp

禁止在 RegExp 建構函式中使用無效的正規表示式字串

建議

設定檔中使用 @eslint/jsrecommended 設定會啟用此規則

正規表示式常值中的無效模式在程式碼剖析時會產生 SyntaxError,但是 RegExp 建構函式中的無效字串只有在程式碼執行時才會拋出 SyntaxError

規則詳情

此規則禁止在 RegExp 建構函式中使用無效的正規表示式字串。

此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint no-invalid-regexp: "error"*/

RegExp('[')

RegExp('.', 'z')

new RegExp('\\')

此規則的正確程式碼範例

在遊樂場中開啟
/*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 中引入的。

延伸閱讀

資源

變更語言