JavaScript PR

JavaScript – 文字列を全て置換:replaceAll()の基本と応用

記事内に商品プロモーションを含む場合があります

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