JavaScript/String/prototype/replaceAll
String.prototype.replaceAll()
は、文字列内のすべての検索文字列をある置換文字列に置き換えるメソッドです。このメソッドは、String.prototype.replace()
と似ていますが、グローバルフラグなしでもすべての一致を置き換える点が異なります[1]。
構文
編集str.replaceAll(searchValue, replaceValue)
searchValue
: 置き換える文字列または正規表現(グローバルフラグ付き)。replaceValue
: 置き換え先の文字列または関数。
例
編集すべての部分文字列を置き換えるプログラム
編集以下のプログラムは、String.prototype.replaceAll()
を使用して文字列内のすべての部分文字列を置き換えます。
const str = "apple, apple, apple"; const newStr = str.replaceAll("apple", "orange"); console.log(newStr); // "orange, orange, orange"
このプログラムでは、String.prototype.replaceAll()
を使用して str
文字列内のすべての "apple" を "orange" に置き換えています。結果として "orange, orange, orange" という新しい文字列が返されます。
正規表現を使用して置き換えるプログラム
編集以下のプログラムは、String.prototype.replaceAll()
を使用して正規表現に一致するすべての部分を置き換えます。
const str = "apple, banana, orange"; const newStr = str.replaceAll(/[aeiou]/g, "*"); console.log(newStr); // "*ppl*, b*n*n*, *r*ng*"
このプログラムでは、String.prototype.replaceAll()
を使用して str
文字列内のすべての母音を "*" に置き換えています。正規表現を使用する場合は、g
フラグが必須です。
関数を使用して動的に置き換えるプログラム
編集以下のプログラムは、String.prototype.replaceAll()
を使用して関数による動的な置き換えを行います。
const str = "apple banana orange"; const newStr = str.replaceAll(/\b(\w+)\b/g, function(match, word) { return word.charAt(0).toUpperCase() + word.slice(1); }); console.log(newStr); // "Apple Banana Orange"
このプログラムでは、String.prototype.replaceAll()
を使用して文章内のすべての単語の先頭を大文字に変換しています。関数を使用することで、一致した各単語に対して特定の処理を適用できます。
注意点
編集- 元の文字列は変更されない: このメソッドは元の文字列を変更せず、新しい文字列を返します。
- 正規表現のグローバルフラグ:
searchValue
が正規表現の場合、g
フラグが必須です。グローバルフラグがない場合はTypeError
が発生します。 - ES2021で導入: このメソッドは ECMAScript 2021 で導入されました。古いブラウザでは利用できない場合があります。
脚註
編集- ^ これは、文字列内のすべての一致する部分文字列を置き換えるために使用されます。
外部リンク
編集