JavaScriptで文字列から条件に一致する文字列を抽出する
Stringオブジェクトのメソッドを使って、文字列から条件に一致する箇所を抽出する方法です。
次のようなメソッドを使って抽出できます。
String.prototype.indexOf()
Stringオブジェクト中で、fromIndex
から検索を始め、指定された値が最初に現れたインデックスを返す
値が見つからない場合は-1
を返すString.prototype.substring()
Stringオブジェクトの開始・終了位置の間、または文字列の最後までの部分集合を返すString.prototype.search()
Stringオブジェクトが正規表現で一致するかどうかを調べ、一致した場合は最初にマッチした箇所のインデックスを返す
マッチしない場合は-1
を返す
サンプル
スタイルシートの文字列から、フォントサイズの数値を抜き出す例です。
const paragraph = "color: red; font: 16pt;";
const indexOfBegin = paragraph.indexOf('font:');
const indexOfEnd = paragraph.indexOf(';', indexOfBegin) + 1;
let propertyFont = paragraph.substring(indexOfBegin, indexOfEnd);
// "数値pt"の開始位置を検索.
let i = propertyFont.search(/[0-9.]+pt/);
let fontSize = propertyFont.substring(i);
// "pt"の開始位置を検索.
i = fontSize.search(/[.p]/);
let fontSizeNum = fontSize.substring(0, i);
console.log(propertyFont); // font: 16pt;
console.log(fontSize); // 16pt;
console.log(fontSizeNum); // 16