JavaScriptのreplaceAll()を使ってみる

文字列を置換する際、複数箇所マッチした場合でもすべて置換できるreplaceAll()を使ってみます。

サンプルコード

replaceAll()と同じく置換処理を行うreplace()も合わせて動作確認してみます。

const sample = 'Aabbccabc';

// replace()の場合、マッチした最初の文字列のみ置換
console.log(sample.replace('a', 'z')); // Azbbccabc
// 正規表現のgオプションで、マッチしたすべての文字列を置換
const regex = /a/g;
console.log(sample.replace(regex, 'z')); // Azbbcczbc

// replaceAll()の場合、マッチしたすべての文字列を置換
console.log(sample.replaceAll('a', 'z')); // Azbbcczbc
// 正規表現のiオプションで、大文字小文字を区別しないで文字列を置換(この時gオプションも必要)
const regex2 = /a/gi;
console.log(sample.replaceAll(regex2, 'z')); // zzbbcczbc
// 正規表現でgオプションを設定しなかった場合はエラーになる
const regex3 = /a/i;
console.log(sample.replaceAll(regex3, 'z')); // Uncaught TypeError: String.prototype.replaceAll called with a non-global RegExp argument

基本的にはコメントに書いた通りで、replaceAll()でも正規表現は使用できますが、その際はgオプションを合わせて設定しないとエラーになる点に注意が必要そうです。
replace()とreplaceAll()のデモページ

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930