JavaScriptで文字列のスペースをアンダースコアに置き換える方法
JavaScriptでは、文字列に含まれるスペースを別の文字に置き換えたいケースはよくあります。例えば、URLやファイル名として扱うために、スペースをアンダースコア(_)に変換したい場合などです。
本記事では、split()とjoin()を組み合わせる方法を中心に、実際のコード例と実行結果を交えてわかりやすく解説します。
まず、次のような文字列があるとします。
var sentence = "My Name is David Miller I live in AUS";
この文字列内のスペースをすべてアンダースコアに置き換えるには、split()メソッドで文字列を分割し、join()メソッドで再結合します。
サンプルコード
以下がそのコードです。
var sentence = "My Name is David Miller I live in AUS";
var withUnderscore = sentence.split(' ').join('_');
console.log("元の文字列=")
console.log(sentence);
console.log("スペースをアンダースコアに置換した結果=")
console.log(withUnderscore);
処理の流れ:
sentence.split(' '):文字列をスペースで区切り、配列に分割します。.join('_'):分割された配列の要素を、区切り文字としてアンダースコアを使って1つの文字列に結合します。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo250.js として保存しているものとします。
出力結果
コンソールには以下のように表示されます。
PS C:\Users\Amit\javascript-code> node demo250.js 元の文字列= My Name is David Miller I live in AUS スペースをアンダースコアに置換した結果= My_Name_is_David_Miller_I_live_in_AUS
このように、すべてのスペースがアンダースコアに置き換えられたことが確認できます。
代替方法:replace()を使う方法
正規表現とreplace()メソッドを組み合わせても、同じ結果を得ることができます。
var sentence = "My Name is David Miller I live in AUS"; var withUnderscore = sentence.replace(/\s+/g, '_'); console.log(withUnderscore); // My_Name_is_David_Miller_I_live_in_AUS
/\s+/gは「1つ以上の空白文字すべて」を意味する正規表現です。replaceAll()メソッドを使えば、正規表現なしでも同様の置換が可能です。
まとめ
split(' ').join('_')はシンプルで直感的な置換手法です。- 正規表現を使った
replace(/\s+/g, '_')は、タブや改行などの空白も一括で処理できます。 - 用途に応じて使い分けることで、柔軟に文字列を操作できます。
-
JavaScriptのgetPrototypeOf()メソッドとは?具体例でわかる使い方とプロトタイプの確認方法
JavaScriptのgetPrototypeOf()メソッドとは? getPrototypeOf()メソッドは、ユーザーが作成したオブジェクトのプロトタイプ(内部スロット [[Prototype]])を取得するために使用されるメソッドです。また、「2つのオブジェクトが同じプロトタイプを持っているかどうか」を比較したい場合にもよく活用されます。 以下に、getPrototypeOf()関数を使った具体的なコード例を示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta cha
-
JavaScriptにおける継承の基本を具体例で解説
JavaScriptは、クラスベースではなくプロトタイプベースのオブジェクト指向言語です。そのため、継承はprototype(プロトタイプ)オブジェクトを通じて実現されます。コンストラクタ関数のprototypeプロパティにメソッドやプロパティを追加すると、そのコンストラクタから生成されたすべてのインスタンスが、それらを共有して利用できるようになります。 プロトタイプによる継承の仕組み JavaScriptでは、インスタンスからプロパティやメソッドが参照されるとき、まずオブジェクト自身を検索し、見つからなければプロトタイプチェーンをたどって上位のオブジェクトへと探しに行きます。これにより、各イ