JavaScriptで正規表現の一致に基づいてデータを動的に置き換える方法
テンプレート文字列内の {{placeholder}} 形式のプレースホルダーを、実際のデータで動的に置き換えたいケースはよくあります。JavaScriptでは、replace() メソッドに正規表現とコールバック関数を組み合わせることで、この処理をシンプルに実装できます。
実装例
以下のコードでは、正規表現 /\{\{(.+?)\}\}/g を使って文字列中のすべての {{...}} を検索し、対応するオブジェクトの値に置き換えています。
var temp = `My name is {{fullName}} I live in {{countryName}}`;
var details = {
"fullName": "David Miller",
"countryName": "AUS"
}
replaceName = temp.replace(
/\{\{(.+?)\}\}/g,
(matching, value) => details[value.trim()]
);
console.log(replaceName);コードのポイント
- パターン
\{\{(.+?)\}\}:波括弧{{ }}で囲まれた部分に一致します。中身の(.+?)は「最短一致(レイジーマッチ)」なので、複数のプレースホルダーがあっても正しく個別に抽出されます。 - フラグ
g:グローバル検索を意味し、文字列内のすべての一致箇所が置換対象になります。 - コールバック関数:第2引数
valueには括弧でキャプチャされたキー名が渡されます。trim()で前後の空白を取り除いてから、detailsオブジェクトから対応する値を取得しています。
プログラムの実行方法
上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo256.js として保存しています。
出力結果
コンソールには次のように出力され、プレースホルダーが実際の値に置き換えられていることが確認できます。
PS C:\Users\Amit\javascript-code> node demo256.js My name is David Miller I live in AUS
この手法は、メール文面の差し込みや動的なHTML生成など、テンプレートベースの文字列置換全般に応用できるため、覚えておくと非常に便利です。
-
JavaScriptのキューデータ構造とは?FIFOの仕組みをわかりやすく解説
キュー(Queue)データ構造の基本キュー(Queue)は、スタックと似た性質を持つ抽象的なデータ構造です。しかし、両者には重要な違いがあります。スタックが片側だけ開いているのに対し、キューは両端が開いた構造を持っている点です。キューでは、一方の端から常にデータを挿入し(エンキュー:enqueue)、もう一方の端からデータを取り出します(デキュー:dequeue)。先入れ先出し(FIFO)方式キューは「First-In-First-Out(先入れ先出し)」という方式に従います。これは、最初に格納されたデータ項目ほど最初にアクセスされることを意味します。データの処理順序を厳密に保ちたい場面で、キ
-
JavaScriptモジュールを動的にロードする方法
JavaScriptモジュールを動的にロードするJavaScriptでは、ESモジュール機能を利用することで、コードを複数のファイルに分割し、必要なときに読み込むことができます。ここでは、JavaScriptモジュールを動的にロードするためのサンプルコードを紹介します。注意: この例を実行するには、ローカルホスト(localhost)サーバー環境が必要です。HTMLファイルを直接ブラウザで開くと、CORS制限によりエラーが発生する可能性があるため、必ずサーバー経由でアクセスしてください。HTMLファイル<!DOCTYPE html> <html lang=en> <