文字列を置換する(replace)

String オブジェクトのインスタンスメソッドである replace は、文字列の中の指定した文字列を別の文字列に置換し新しい文字列として返します。ここでは String オブジェクトの replace メソッドの使い方について解説します。

(Last modified: )

文字列を置換する(replace)

String オブジェクトの replace メソッドは、対象の文字列の中の指定した文字列を別の文字列に置換します。書式は次のとおりです。

文字列.replace(置換する文字列, 新しい文字列)

引数の置換する文字列には、文字列または正規表現オブジェクトを指定してください。対象の文字列の中に含まれる 1 番目で指定した文字列を 2 番目で指定した文字列に置換します。対象の文字列に変更は行わず、置換したあとの新しい文字列が返されます。

なお対象の文字列の中に 1 番目の引数に指定した文字列と一致するものが複数あった場合でも、置換されるのは最初に見つかった文字列だけです。

次のサンプルをみてください。

let str = 'red bird and red flower';
let newstr = str.replace('red', 'Red');

console.log(newstr);
>> Red bird and red flower

文字列の中に含まれる 'red' が 'Red' に置換されました。なお文字列の中には 'red' が複数含まれていましたが、置換されたのは最初の 'red' だけです。

$記号を使った特別な値で置換する

置換する新しい文字列としてドル記号($)を使った特別な値を記述することができます。 1 番目の引数が正規表現ではなくなく文字列を指定した場合にはあまり使用する機会はないかもしれませんが、 2 番目の引数の中で $ で始まる文字が特別な意味を持つことは知っておいてください。

$&  マッチした部分文字列
$`  マッチした部分の前の文字列
$'  マッチした部分の後の文字列
$$  $の文字
$1, $2, ...  正規表現の場合に使用します

次のサンプルをみてください。

let str = 'BananaLemonOrange';

console.log(str.replace('Lemon', '[$&]'));
>> Banana[Lemon]Orange
console.log(str.replace('Lemon', '[$`]'));
>> Banana[Banana]Orange
console.log(str.replace('Lemon', '[$\']'));
>> Banana[Orange]Orange

今回のサンプルでは置換する文字列が 'Lemon' なので '$&' は 'Lemon' となり、 '$`' は 'Lemon' の前の 'Banana' となり、 '$\'' は 'Lemon' のあとの 'Orange' となります。

置換する対象の文字列には、文字列のほかに正規表現リテラルを指定することもできます。詳しくは「正規表現を使って指定した文字列を新しい文字列に置換する(String.prototype.replace)」をご参照ください。

-- --

String オブジェクトの replace メソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。