【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() と正規表現を組み合わせれば、ループ処理などを書くことなく、簡潔なコードでこのような分割処理が実現できます。
-
JavaScriptでjoin()を使って文字列を繰り返し連結する方法
JavaScriptで文字列を繰り返し連結する基本 JavaScriptで同じ文字列を複数回連結したい場合、join()メソッドを利用するのが定番のテクニックです。配列の要素数を工夫することで、文字列を「要素数 − 1」回だけ繰り返して連結できます。 join()の仕組み join()は、配列の各要素を区切り文字(セパレーター)でつなげて1つの文字列に変換するメソッドです。空の配列に対して区切り文字として目的の文字列を指定すると、隣り合う要素同士の間にその文字列が挿入されます。この性質を利用すると、次のような結果が得られます。 new Array(count + 1).join(John)
-
JavaScriptで日付値をフォーマットする方法をわかりやすく解説
JavaScriptでは、toLocaleDateString()メソッドを使うことで、Dateオブジェクトが持つ日付の値を読みやすい形式にフォーマットできます。この記事では、実際のコード例を使いながら、日付値を整形して表示する方法を紹介します。 サンプルコード 以下は、JavaScriptで日付値をフォーマットするためのコード例です。 function changeDateFormat(dateValues, addToFront = ) { return typeof dateValues == object ? addToFront + d