JavaScriptで区切り文字ごとに文字列を単語単位で分割する方法|split()とfilter()の組み合わせ
はじめに
JavaScriptでは、split()メソッドとfilter()メソッドを組み合わせることで、区切り文字で区切られた文字列をきれいに単語ごとへ分割することができます。本記事では、具体的な構文から実際の実行例まで、わかりやすく解説します。
基本構文
すべての単語の後に区切り文字が付いている文字列を分割したい場合は、次の構文を使用します。
var anyVariableName = yourVariableName.split('パラメータ').filter(value => value);
末尾に .filter(value => value) を付けているのがポイントです。これにより、文字列の先頭や連続した区切り文字によって生じる空文字列("")が自動的に除外され、余計な要素を含まないクリーンな配列が得られます。
サンプルデータの準備
例として、ハイフン「-」を区切り文字とした次の文字列を用意します。
var sentence = "-My-Name-is-John-Smith-I-live-in-US";
先頭にもハイフンが付いている点に注目してください。通常の split() だけでは空文字列が混入してしまうため、filter() を組み合わせる場面として最適な例です。
実行例
それでは、上記の文字列を split('-') と filter() を使って分割してみましょう。
var sentence = "-My-Name-is-John-Smith-I-live-in-US";
console.log("元の値=" + sentence);
var result = sentence.split('-').filter(value => value);
console.log("split()実行後=");
console.log(result);
プログラムの実行方法
上記のプログラムはNode.js環境で実行します。以下のコマンドを使用してください。
node fileName.js
今回はファイル名を demo63.js として保存しています。
実行結果
プログラムを実行すると、次のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo63.js
元の値=-My-Name-is-John-Smith-I-live-in-US
split()実行後=
[
'My', 'Name',
'is', 'John',
'Smith', 'I',
'live', 'in',
'US'
]
出力を見ると、先頭のハイフンによる空文字列が取り除かれ、「My」「Name」「is」…といった各単語だけが配列要素として格納されていることが確認できます。
ポイントまとめ
split(区切り文字)だけで文字列を配列に分割できる。filter(value => value)をチェーンすることで、空文字列を自動的に除去できる。- CSVデータやURLパスなど、区切り文字を含む文字列処理全般に応用可能。
このテクニックを覚えておくと、ユーザー入力やAPIレスポンスなど、形式が不揃いな文字列データを安全に処理できるようになります。
-
JavaScriptでテキストボックスを選択することは可能ですか?select()メソッドの使い方を解説
はい、可能です。JavaScriptのselect()メソッドを使えば、テキストボックス内のテキストを選択状態にすることができます。まずは、テキスト入力欄を作成してみましょう。 テキストボックスとボタンの作成 Enter your Name:<input type="text" id="txtName" value="John"> <br> <button type="button" onclick="check()">Select Text Box<
-
セパレータ区切りの文字列をJavaScriptでオブジェクトの配列に変換する方法
JavaScriptでは、特定のセパレータ(区切り文字)で連結された文字列を、扱いやすいデータ構造へ変換したい場面がよくあります。本記事では、「|」で区切られた文字列を、キーと値のペアを持つオブジェクトの配列へ変換する方法を解説します。問題の概要例として、次のような文字列が与えられたとします。const str = Option 1|false|Option 2|false|Option 3|false|Option 4|true;この文字列は、「オプション名」と「真偽値」が交互に「|」で連結された形式になっています。ここで求められるのは、この文字列を入力として受け取り、「|」で分割しながらオ