JavaScriptでスペース区切りの文字列を分割し、余分なカンマとスペースをトリミングする方法
JavaScriptでは、正規表現を split() と join() と組み合わせて使うことで、文字列に含まれる余分なカンマやスペースを簡単に取り除くことができます。
例として、次のように余分なカンマとスペースが混在した文字列があるとします。
var sentence = "My,,,,,,, Name,,,, is John ,,, Smith";
実装方法
正規表現 /[\s]+/ を使って文字列を分割し、その結果を join() で再結合することで、余分なカンマとスペースを一括で削除できます。以下が実際のコードです。
コード例
var sentence = "My,,,,,,, Name,,,, is John ,,, Smith";
console.log("Before removing extra comma and space="+sentence);
sentence = sentence.split(/[\s]+/).join();
console.log("After removing extra comma and space=");
console.log(sentence)上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
出力結果
ここではファイル名を demo133.js としています。実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo133.js Before removing extra comma and space=My,,,,,,, Name,,,, is John ,,, Smith After removing extra comma and space= My,Name,is,John,Smith
仕組みの解説
/[\s]+/:空白文字(\s)またはカンマ(,)が1回以上連続する部分に一致する正規表現です。「,,,,,,,」のようにカンマが連続している場合でも、まとめて1つの区切りとして処理されます。split():正規表現に一致した箇所で文字列を分割し、配列を返します。この例では ["My", "Name", "is", "John", "Smith"] という配列になります。join():引数を指定せずに呼び出すと、デフォルトの区切り文字である「,(カンマ)」で配列の要素を結合した文字列を返します。
このように、わずか1行のコードで不要なカンマとスペースを取り除き、単語をきれいなカンマ区切りの形式に整形することができます。データの前処理や入力値のクリーンアップなど、さまざまな場面で活用できる便利なテクニックです。
-
JavaScriptのTextEncoderとTextDecoderとは?文字列とバイト列の相互変換をわかりやすく解説
JavaScriptでは、文字列とバイト列(バイナリデータ)を相互に変換したい場面がよくあります。そんなときに活躍するのが、TextEncoderとTextDecoderという2つの標準組み込みAPIです。本記事では、それぞれの役割と基本的な使い方を、実際に動くサンプルコードとともに解説します。 TextEncoderとは TextEncoderは、指定した文字列をUTF-8形式に変換(エンコード)するためのオブジェクトです。encode()メソッドに文字列を渡すと、変換結果がUint8Array(符号なし8ビット整数の配列)として返されます。 TextDecoderとは TextDecod
-
JavaScriptで文字列内の2つ以上の連続スペースを1つのスペースに変換する方法
概要 HTMLの入力欄からユーザーが入力した文字列をJavaScriptで受け取り、その中に含まれる「2つ以上の連続した空白」を検出し、すべて1つのスペースに置き換えるプログラムを作成します。このような処理には正規表現を使うのが最もシンプルで確実な方法です。replace()メソッドの第1引数に正規表現 /\s{2}/g を指定することで、目的の結果を簡単に得られます。 使用する正規表現のポイント \s:半角スペース・タブ・改行などの空白文字にマッチします。 {2}:直前のパターンが2回以上連続する場合にマッチします。 g(グローバルフラグ):文字列内のすべての該当箇所を置換対象にします。