【JavaScript】文字列を置換する

文字列の置換はreplace()メソッドを使用

JavaScriptのreplace()メソッドを使用すると文字列の置換ができます。
使い方は次の通りです。

JavaScript
"文字列".replace("置換したい文字列", "置換後の文字列")

使用例です。コンソールには「今日は雨です。」と表示されます

JavaScript
const original_message = "今日は晴れです。";
const after_message = original_message.replace("晴れ", "");
console.log(after_message);

注意1)replace()メソッドは文字列にしか使えない

次のように数値に対して、replace()メソッドを使うとエラー(Uncaught TypeError: number.replace is not a function)となってしまいます。

JavaScript
const number = 12345;
console.log(number.replace(2, "two"));

replace()メソッドは文字列にしか使えないので、次のように文字列に変換してからreplace()メソッドを使用してください。

JavaScript
const number = 12345;
console.log(String(number).replace(2, "two"));

こちらは、コンソールに「1two2345」と表示されます。

注意2)replace()メソッドは最初に見つかった文字列しか置換しない

次のように置換したい文字列が複数ヶ所にある場合は、最初に見つかった文字列しか置換されません。

JavaScript
const original_message = "昨日は晴れでした。今日も晴れです。";
const after_message = original_message.replace("晴れ", "");
console.log(after_message);

コンソールには「昨日はでした。今日も晴れです。」と表示されます。
該当する文字列を全て置換したい場合は、次の3つの方法があります。

  • replaceAll()メソッド
  • replace()メソッド + 正規表現
  • split() + join()

replaceAll()メソッドで置換

replaceAll()メソッドを使うと、該当する文字列を全て置換することができます。
使い方は、replace()メソッドとほとんど同じです。

JavaScript
"文字列".replaceAll("置換したい文字列", "置換後の文字列")

使用例です。

JavaScript
const original_message = "昨日は晴れでした。今日も晴れです。";
const after_message = original_message.replaceAll("晴れ", "");
console.log(after_message);

コンソールには「昨日は雨でした。今日も晴れです。」と表示されます。
ただし、replaceAll()メソッドは、ES2021(ECMAScript 12)で導入されたため、古いバージョンのブラウザでは動作しない可能性があるので注意してください。もし動作しない場合は「replace() + 正規表現」、「split() + join()」のいずれかで対応できると思います。

replace() + 正規表現で置換

次のように置換したい文字列正規表現を指定して、該当する文字列を全て置換することができます。

JavaScript
const original_message = "昨日は晴れでした。今日も晴れです。";
const after_message = original_message.replace(/晴れ/g, "");
console.log(after_message);

コンソールには「昨日は雨でした。今日も晴れです。」と表示されます。

ちなみに私は正規表現は何となくしか理解しておらず、いつもChatGPTにお世話になっています。

split() + join()で置換

split()メソッドとjoin()メソッドを組み合わせて、該当する文字列を全て置換することができます。

JavaScript
const original_message = "昨日は晴れでした。今日も晴れです。";
const after_message = original_message.split("晴れ").join("");
console.log(after_message);

コンソールには「昨日は雨でした。今日も晴れです。」と表示されます。

split()メソッドは、文字列を指定した文字列で分割し、配列を返します。
上記コードのoriginal_message.split(“晴れ”)の部分では[‘昨日は’, ‘でした。今日も’, ‘です。’]という配列が作成されます。

join()メソッドは、配列を指定した文字列で連結し、文字列を返します。
上記コードでは[‘昨日は’, ‘でした。今日も’, ‘です。’]で連結し、「昨日は雨でした。今日も晴れです。」という文字列が作成されるので、指定した文字で置換したような挙動になります。

コメントを残す

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

CAPTCHA