跳到主要內容

prefer-regexp-exec

不提供全域旗標時,強制使用 RegExp#exec 而非 String#match

🔧

此規則報告的一些問題可以自動修正,請使用 --fix ESLint 命令列選項.

💭

此規則需要 類型資訊 才能執行。

當正規表示式不包含 g 旗標時,String#match 被定義為與 RegExp#exec 工作方式相同。持續一致地使用其中一種可以幫助改善程式碼的可讀性。

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);
在練習場開啟

選項

此規則不可設定。

何時不使用

如果您傾向於同時使用 g 標記和不使用 g 標記的 String#match,您可以關閉此規則。


類型檢查中的 lint 規則比傳統的 lint 規則更強大,但同時也需要設定 類型檢查的 lint。如果您在啟用類型檢查規則後體驗到效能降低,請參閱 效能疑難排解

資源