JavaScriptのreplace()
とreplaceAll()
は、文字列の一部を別の文字列に置き換えるメソッドです。文字列の加工やデータの整形をする際に便利なメソッドなので、基本的な使い方や注意点をまとめていきたいと思います。
replace()
は、指定した文字列や正規表現に一致する最初の1つの部分を置き換えるメソッドです。
JavaScript
文字列.replace(検索する値, 置換後の値)
検索する値
:置き換えたい文字列または正規表現を指定します。置換後の値
:新しく置き換える文字列を指定します。
JavaScript
const text = 'Hello Coffee!';
console.log(text.replace('Coffee', 'Donut')); // "Hello Donut!"
JavaScript
const text = 'ホットコーヒーとホットカフェラテをお願いします。';
console.log(text.replace(/ホット/, 'アイス')); // "アイスコーヒーとホットカフェラテをお願いします。"
※replace()
は最初に一致したもののみを置き換えます。
replaceAll()
はreplace()
と似ていますが、一致するすべての部分を置き換えます。
JavaScript
文字列.replaceAll(検索する値, 置換後の値)
検索する値
:置き換えたい文字列またはグローバル修飾子 (/g
) を持つ正規表現を指定します。置換後の値
:新しく置き換える文字列を指定します。
JavaScript
const text = 'ホットコーヒーとホットカフェラテをお願いします。';
console.log(text.replaceAll('ホット', 'アイス')); // "アイスコーヒーとアイスカフェラテをお願いします。"
JavaScript
const text = 'abc abc abc';
console.log(text.replaceAll(/abc/g, 'xyz')); // "xyz xyz xyz"
※replaceAll()
は ES2021以降 のメソッドなので、古いブラウザでは動作しない可能性があります。
JavaScript
const sentence = 'コーヒーは最高!コーヒーはおいしい!';
console.log(sentence.replace(/コーヒー/gi, '紅茶')); // "紅茶は最高!紅茶はおいしい!"
JavaScript
const menu = 'cappuccino';
const order = 'Can I hav a MENU?';
console.log(order.replace('MENU', menu)); // "Can I hav a cappuccino!"
JavaScript
console.log('coffee coffee coffee'.replace('coffee', 'cappuccino')); // "cappuccino coffee coffee"
すべて置き換えたい場合は replaceAll()
または/g
を使用しましょう。
replace()
/ replaceAll()
はデフォルトで大文字小文字を区別します。
JavaScript
console.log('Hello Coffee'.replace('coffee', 'Donut')); // "Hello Coffee"(変更なし)
大文字小文字を無視するには、正規表現/i
を使用します。
replace()
は最初の一致のみを置換します。replaceAll()
は一致するすべての部分を置換します(ES2021以降)。- 大文字小文字を区別するが、正規表現を使えば無視できます。