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
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です