Skip to content
← Back to rules

eslint/no-invalid-regexp 正しさ

This rule is turned on by default.

何をすることか

RegExp コンストラクタ内の無効な正規表現文字列を禁止します。

なぜ問題なのか

正規表現リテラル内に無効なパターンがある場合、コードが解析される時点で SyntaxError になりますが、RegExp コンストラクタ内の無効な文字列は、コードが実行されるまで SyntaxError にならないため、実行時エラーの原因となります。

このルールに関して誤りなコードの例:

js
RegExp("[");
RegExp(".", "z");
new RegExp("\\");

このルールに関して正しいコードの例:

js
RegExp(".");
new RegExp();
this.RegExp("[");

設定

このルールは、以下のプロパティを持つ設定オブジェクトを受け入れます。

allowConstructorFlags

type: string[]

default: []

許可されるフラグの区別大文字小文字の配列です。

使い方

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "no-invalid-regexp": "error"
  }
}
bash
oxlint --deny no-invalid-regexp

参照