【JavaScript】
replace(), replaceAll()を使用して文字列を置換する方法

指定した文字列・正規表現に一致した文字列を置換する

投稿日 2025/01/19 更新日 2025/01/19


こんにちは。IT業界歴5年目の「元木皇天」です。

今回はJavaScriptで、replaceメソッド, replaceAllメソッドを使用して文字列を置換する方法について解説いたします。

やりたいこと

replaceメソッド, replaceAllメソッドを使用して文字列の一部を指定した文字列で置換する方法


参考文献

String.prototype.replace()の公式ドキュメント
String.prototype.replaceAll()の公式ドキュメント
JavaScript コードレシピ集
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで


環境

・OS:MacOS Sequoia 15.0
・Google Chrome:Ver 131.0.6778.265

指定した文字列を置換する

JavaScriptで文字列の一部を、指定した文字列で置換するにはreplace()を使用します。

引数は2つです。

  • 第1引数:置換対象の文字列
  • 第2引数:第1引数の文字列を置換する文字列

以下は実際の使用例です。

const text = 'abcdefgABCDEFG';

//defgを1234に置換する
const replecedText = text.replace('defg', '1234');
console.log(replecedText);
//abc1234ABCDEFG が出力される

注意点としては、条件に一致する最初の文字列のみ置換されるという点があります。

以下は例です。

const text = 'aaaaaaaaaa';

//aを1に置換する
const replecedText = text.replace('a', '1');
console.log(replecedText);
//1aaaaaaaaa が出力される

条件に一致する文字列全てを置換する場合は、replaceAll()を使用します。

引数はreplace()と同じです。

  • 第1引数:置換対象の文字列
  • 第2引数:第1引数の文字列を置換する文字列

以下はreplaceAll()の使用例です。

const text = 'aaaaaaaaaa';

//aを1に置換する
const replecedText = text.replaceAll('a', '1');
console.log(replecedText);
//111111111 が出力される

正規表現に一致した文字列を置換する

正規表現に一致した文字列を置換するにはreplace()の第1引数に正規表現を指定します。

引数は以下の通りです。

  • 第1引数:正規表現
  • 第2引数:正規表現に一致した箇所を置換する文字列

以下は実際の使用例です。

const text = 'abcdefgABCDEFG';

//bを1に置換する。ただし大文字と小文字を区別しない。
const replecedText = text.replace(/b/i, '1');
console.log(replecedText);
//a1cdefgABCDEFG が出力される

こちらも、先ほどの文字列を指定して置換するコードと同様に、条件に一致する最初の文字列のみ置換される点に注意が必要です。

正規表現に一致するすべての文字列を置換したい場合は正規表現でグローバル検索のフラグを指定します。

以下は使用例です。

const text = 'abcdefgABCDEFG';

//bを1に置換する。ただし大文字と小文字を区別しない。
//正規表現に"g"のフラグを記載する
const replecedText = text.replace(/b/gi, '1');
console.log(replecedText);
//a1cdefgA1CDEFG が出力される

また、replaceAll()でも同様の処理を実現することができます。

ただし、replaceAll()ではありますが、正規表現で必ずグローバル検索のフラグ(g)をつけないとエラーになるので注意してください。

以下は使用例です。

const text = 'abcdefgABCDEFG';

//bを1に置換する。ただし大文字と小文字を区別しない。
//正規表現に"g"のフラグを記載する
const replecedText = text.replaceAll(/b/gi, '1');
console.log(replecedText);
//a1cdefgA1CDEFG が出力される

まとめ

JavaScriptで文字列を置換するには

  • replace()
  • replaceAll()

を使用する。

参考文献・おすすめ文献

String.prototype.replace()の公式ドキュメント

String.prototype.replaceAll()の公式ドキュメント