JavaScriptで文字列内の単語をすべて置換する独自関数を作成する方法
JavaScriptで単語の一括置換を実現するには?
JavaScriptには、文字列内に含まれる特定の単語をすべて一括で置換するための組み込み関数は標準では用意されていません。そのため、split()とjoin()を組み合わせた独自の関数を作成して対応します。
まず、次のような文字列を例に考えてみましょう。
var sentence = "Yes, My Name is John Smith. I live in US. Yes, My Favourite Subject is JavaScript";
サンプルコード
「Yes」という単語を「Hi」に置き換える関数の実装例が以下のコードです。
var sentence = "Yes, My Name is John Smith. I live in US. Yes, My Favourite Subject is JavaScript";
console.log(sentence);
function replaceYesWithHi(word, sentence, replaceValue) {
return sentence.split(word).join(replaceValue);
}
var replacementofYesWithHi = replaceYesWithHi("Yes", sentence, "Hi");
console.log(replacementofYesWithHi);
この関数の仕組みはシンプルです。対象の文字列をsplit(word)で指定した単語を区切りとして配列に分割し、join(replaceValue)で置換後の単語を区切り文字として連結し直すことで、すべての出現箇所を一度に置換できます。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。
node fileName.js
ここでは、ファイル名をdemo240.jsとしています。
実行結果(出力)
実行すると、出力は以下のようになります。
PS C:\Users\Amit\javascript-code> node demo240.js Yes, My Name is John Smith. I live in US. Yes, My Favourite Subject is JavaScript Hi, My Name is John Smith. I live in US. Hi, My Favourite Subject is JavaScript
2行目の出力を見ると、「Yes」の箇所がすべて「Hi」に置き換わっていることが確認できます。
補足:replaceAll()メソッドについて
なお、ES2021以降の環境ではString.prototype.replaceAll()メソッドを使えば、同じ処理をより簡潔に書くことができます。ただし、古いブラウザや旧バージョンのNode.jsでは利用できない場合があるため、互換性を重視する場合は本記事で紹介したsplit().join()方式が今でも有効な選択肢となります。
-
JavaScriptで関数を「関数」として呼び出す方法と「メソッド」として呼び出す方法の違い
JavaScriptでは、同じ関数でも呼び出し方によって「関数としての呼び出し」と「メソッドとしての呼び出し」という2つの使い方ができます。この2つの大きな違いは、関数内でthisが何を参照するかという点にあります。 2つの呼び出し方の違い 関数としての呼び出し:関数名を直接記述して呼び出します(例:add(2, 3))。この場合、thisはグローバルオブジェクト(ブラウザ環境ではwindow)を参照します。 メソッドとしての呼び出し:オブジェクトのプロパティ経由で呼び出します(例:obj.welcome())。この場合、thisはそのオブジェクト自身を参照するため、オブジェクトが持つプロパ
-
Wordで小冊子(ブックレット)を作る方法|テンプレート活用から手動作成・印刷まで徹底解説
Microsoft Wordは、ドキュメントに関する作業をする人にとって欠かせないツールです。長年にわたって使われ続けてきたため、オフィスワークや学校の課題など、デジタルでの文書作業をWordなしで想像するのは難しいほどです。 しかし、多くのユーザーはWordのごく基本的な機能しか使っておらず、知らず知らずのうちに多くの便利な機能を見逃しています。ドキュメントの開閉・閲覧・編集だけでなく、Wordではグリーティングカードのデザインやバーコードの作成、そして小冊子(ブックレット)の自作など、さまざまなことができるのです。 この記事では、Microsoft Wordでテンプレートを使う方法と、一か