株式会社オートプロジェクト

Columnコラム
  • TOP
  • コラム一覧
  • Javascriptの正規表現を変数を使ってloopで回して処理する
2023年10月16日
Javascriptの正規表現を変数を使ってloopで回して処理する

たとえば、以下のような配列があり、currenciesにある単位がある場合に金額だけを抽出する場合の処理。

正規表現で変数を使いたい場合は、new RegExpを使うことが大切。

var currencies = ["¥","円","¥"];
var lines = ["合計 ¥1,230", "小計 1,999円", "総合 ¥1,030", "クレジットカード(Amazon Mastercard)一括払い: ¥ 3,274"];>

for (var i = 0; i < lines.length; i++) {
  var line = lines[i];
  // ,と-を削除する
  line = line.replace(/-|,| | /g, "");

  for (var j = 0; j < currencies.length; j++) {
    var currency = currencies[j];
    // ¥の後に数字がある場合は、¥を削除する
    var regexp = new RegExp(currency + "([0-9]+)"); 
    if (line.match(regexp)) {
        var matches = line.match(regexp);
        console.log(matches[1]);
    }
    // 円の前に数字がある場合は、数字を抽出する
    var regexp = new RegExp("([0-9]+)" + currency);
    if (line.match(regexp)) {
        var matches = line.match(regexp);
        console.log(matches[1]);
    }

  }
}