prefer-regexp-exec
グローバルフラグが提供されていない場合、
String#match
よりもRegExp#exec
を強制します。
🔧
このルールによって報告される問題の一部は、 --fix
ESLint コマンドラインオプションで自動的に修正可能です.
💭
このルールを実行するには 型情報 が必要です。
String#match
は、正規表現に g
フラグが含まれていない場合、RegExp#exec
と同じように動作するように定義されています。2つのうちの1つを一貫して使用し続けることは、コードの可読性を向上させるのに役立ちます。
このルールは、String#match
の呼び出しを同等の RegExp#exec
で置き換えることができる場合に報告します。
RegExp#exec
はString#match
よりもわずかに高速である可能性もあります。これが、優先される使用法として選択する理由です。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/prefer-regexp-exec": "error"
}
};
プレイグラウンドでこのルールを試す ↗
例
- ❌ 不正
- ✅ 正しい
'something'.match(/thing/);
'some things are just things'.match(/thing/);
const text = 'something';
const search = /thing/;
text.match(search);
プレイグラウンドで開く/thing/.exec('something');
'some things are just things'.match(/thing/g);
const text = 'something';
const search = /thing/;
search.exec(text);
プレイグラウンドで開くオプション
このルールは設定できません。
いつ使用しないか
g
フラグの有無にかかわらず、String#match
の一貫した使用を好む場合は、このルールをオフにすることができます。
型チェックされた lint ルールは、従来の lint ルールよりも強力ですが、型チェックされた lint の構成も必要です。型チェックされたルールを有効にした後にパフォーマンスの低下が発生した場合は、パフォーマンスのトラブルシューティングを参照してください。