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"
}
};
在此練習場嘗試此規則 ↗
範例
- ❌ 錯誤示範
- ✅ 正確示範
選項
此規則不可設定。
何時不使用
如果您傾向於同時使用 g
標記和不使用 g
標記的 String#match
,您可以關閉此規則。
類型檢查中的 lint 規則比傳統的 lint 規則更強大,但同時也需要設定 類型檢查的 lint。如果您在啟用類型檢查規則後體驗到效能降低,請參閱 效能疑難排解。