JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】文字の並びが変わった箇所で文字列を分割する方法

文字列の中で「値(文字)が変わったタイミング」で分割したい場合は、match() メソッドと正規表現を組み合わせることで簡単に実現できます。ポイントとなるのは、任意の1文字にマッチする (.) と、後方参照 \1 を使ったパターンです。

使用する正規表現は /(.)\1*/g です。これは「ある1文字」と「それと同じ文字の0回以上の繰り返し」をひとまとまりとして捉え、フラグ g によって文字列全体から繰り返し抽出することを意味します。その結果、連続する同じ文字が自動的にグループ化され、文字が切り替わる位置で分割されます。

サンプルコード

var originalString="JJJJOHHHHNNNSSSMMMIIITTTTHHH";
var regularExpression=/(.)\1*/g;
console.log("元の文字列="+originalString);
var splitting=originalString.match(regularExpression);
console.log("分割後の結果=");
console.log(splitting);

プログラムの実行方法

上記のプログラムを実行するには、ターミナルやコマンドプロンプトで次のコマンドを入力します。

node fileName.js

ここでは、ファイル名を demo139.js として保存しています。

出力結果

プログラムを実行すると、コンソールに以下のように出力されます。

PS C:\Users\Amit\JavaScript-code> node demo139.js
元の文字列=JJJJOHHHHNNNSSSMMMIIITTTTHHH
分割後の結果=[
    'JJJJ', 'O',
    'HHHH', 'NNN',
    'SSS', 'MMM',
    'III', 'TTTT',
    'HHH'
]

このように、元の文字列「JJJJOHHHHNNNSSSMMMIIITTTTHHH」は、連続する同じ文字ごとに「JJJJ」「O」「HHHH」「NNN」「SSS」「MMM」「III」「TTTT」「HHH」という配列へと正しく分割されました。match() と正規表現を組み合わせれば、ループ処理などを書くことなく、簡潔なコードでこのような分割処理が実現できます。

  1. JavaScriptでjoin()を使って文字列を繰り返し連結する方法

    JavaScriptで文字列を繰り返し連結する基本 JavaScriptで同じ文字列を複数回連結したい場合、join()メソッドを利用するのが定番のテクニックです。配列の要素数を工夫することで、文字列を「要素数 − 1」回だけ繰り返して連結できます。 join()の仕組み join()は、配列の各要素を区切り文字(セパレーター)でつなげて1つの文字列に変換するメソッドです。空の配列に対して区切り文字として目的の文字列を指定すると、隣り合う要素同士の間にその文字列が挿入されます。この性質を利用すると、次のような結果が得られます。 new Array(count + 1).join(John)

  2. JavaScriptで日付値をフォーマットする方法をわかりやすく解説

    JavaScriptでは、toLocaleDateString()メソッドを使うことで、Dateオブジェクトが持つ日付の値を読みやすい形式にフォーマットできます。この記事では、実際のコード例を使いながら、日付値を整形して表示する方法を紹介します。 サンプルコード 以下は、JavaScriptで日付値をフォーマットするためのコード例です。 function changeDateFormat(dateValues, addToFront = ) {     return typeof dateValues == object ? addToFront + d