unicorn/prefer-string-replace-all 細部まで気を使う
何をしますか?
正規表現にグローバルフラグ(g)を使用している場合、String#replaceAll() を String#replace() の代わりに推奨します。
なぜ問題なのでしょうか?
String#replaceAll() メソッドは、正規表現を使用する必要がなく、文字列がリテラルでない場合にエスケープを忘れる心配もありません。そのため、より高速かつ安全です。また、正規表現と一緒に使用した場合、意図がより明確になります。
例
このルールに違反する誤りの例:
js
foo.replace(/a/g, bar);このルールに準拠する正しい例:
js
foo.replace(/a/, bar);
foo.replaceAll(/a/, bar);
const pattern = "not-a-regexp";
foo.replace(pattern, bar);使い方
設定ファイルまたは CLI でこのルールを有効化するには、以下の方法を使います。
json
{
"rules": {
"unicorn/prefer-string-replace-all": "error"
}
}bash
oxlint --deny unicorn/prefer-string-replace-all