JavaScriptを使い始めたばかりの人にとって、
文字列操作は避けて通れない重要なスキルです。

特に、特定の文字列を置換する作業は頻繁に発生します。
本記事では、
その中でも非常に便利な replaceAll() メソッドについて、
基本から応用までをわかりやすく解説します。

「replaceAll()」がどのようなメソッドなのかを理解し、
具体的な使い方を学んでいきましょう!

replaceAll()とは?

replaceAll() とは、
JavaScriptで特定の文字列を
すべて置換するためのメソッドです。

例えば、
文章中のすべての「apple」を
「orange」に置き換えたいときに使います。

通常の replace() メソッドは、
最初に見つかった1つの「apple」しか置き換えませんが、
replaceAll() はその名前の通り、
すべての「apple」を置き換えてくれます。

replaceAll() の基本的な使い方

まず、
replaceAll() の基本的な書き方を確認しましょう。

let newString = originalString.replaceAll('検索する文字列', '置換する文字列');


たとえば、
次のコードでは「Hello World!」という
文字列のすべての「o」を「a」に置き換えています。

let result = "Hello World!".replaceAll("o", "a");
console.log(result); // "Hella Warld!"


このように、replaceAll() を使うと
簡単に文字列を全て置換できます。

正規表現を使った文字列の置換

正規表現とは?

正規表現(せいきひょうげん)とは、
特定のパターンに一致する文字列を検索したり、
置換したりするための特別な書き方です。

例えば、「数字だけを探す」
「特定の単語が含まれているかどうかを確認する」
といった用途で使います。

replaceAll() メソッドでも正規表現を使って、
より複雑なパターンの文字列を置換することができます。

replaceAll() での正規表現の使い方

次に、replaceAll()
正規表現を使って文字列を置換する方法を見てみましょう。

let text = "I have 2 apples and 3 bananas.";
let newText = text.replaceAll(/\d/g, "number");
console.log(newText); // "I have number apples and number bananas."


この例では、文章中のすべての数字(\d)を
「number」に置き換えています。
/\d/g の「g」は「グローバル」という意味で、
文章中のすべての一致する部分を置き換えることを示しています。

エスケープが必要な文字の処理

正規表現を使う場合、
特殊文字を正しくエスケープしないと
予期せぬ結果になることがあります。

const str = "apple.banana.orange";
const replaced = str.replace(/\./g, ' ');
console.log(replaced); // "apple banana orange"

上記のように、. は正規表現では「任意の文字」を意味するため、
エスケープが必要です。
※試しに「\」を消してみると、
 全部の文字が置き換えられてしまいます!

実用的な置換の例

例1: 文字列の全置換

特定の文字列を全て別の文字に置き換える例です。

let text = "apple, apple, apple";
let newText = text.replaceAll("apple", "orange");
console.log(newText); // "orange, orange, orange"

例2: 文字列の削除

replaceAll() を使って文字列を削除することもできます。

let text = "Hello, World!";
let newText = text.replaceAll("World", "");
console.log(newText); // "Hello, !"

例3: 文字列の挿入

特定の文字列の前後に文字を挿入する方法です。

let text = "apple, banana, cherry";
let newText = text.replaceAll(", ", "-fruit-");
console.log(newText); // "apple-fruit-banana-fruit-cherry"

例4: 正規表現を使った置換

次に、正規表現を使って特定のパターンを置換する例を紹介します。

let text = "cat bat rat";
let newText = text.replaceAll(/at/g, "og");
console.log(newText); // "cog bog rog"
javascriptCopy codelet text = "cat bat rat";
let newText = text.replaceAll(/at/g, "og");
console.log(newText); // "cog bog rog"

このコードでは、”at” の部分をすべて “og” に置換しています。

replaceAll() と replace() の使い分け

replace() と replaceAll() の違い

replace()replaceAll() の最大の違いは、
置換の対象となる文字列が一つだけか、
すべてかという点です。

1つだけ置き換えたい場合は replace() を、
すべてを置き換えたい場合は replaceAll() を使うと良いでしょう。

ブラウザーの互換性と仕様書の確認

ブラウザーの互換性

replaceAll() メソッドは比較的新しい機能であり、
一部の古いブラウザではサポートされていません。

したがって、replaceAll() が使用できない環境では、
正規表現や split() + join() の方法を使うことが推奨されます。

どの環境でも動作するコードを書けるように注意しましょう。

仕様書へのリンク

JavaScriptの公式仕様書には、
replaceAll() やその他のメソッドの詳細が記載されています。
より深く学びたい場合は、公式の 仕様書 を参照してください。

まとめ

本記事では、
JavaScriptの replaceAll() メソッドについて
基本から応用までを解説しました。

replaceAll() を使えば、
特定の文字列をすべて一度に置換でき、非常に便利です。
初心者の方もこの記事を参考にして、
文字列置換を効率的に行えるように練習しましょう!