<h1>Вставьте текст из буфера обмена</h1>
<textarea id='inputText' placeholder='Введите текст' spellcheck=false></textarea>
<button id='convert'>Convert</button>
<button id='getSpentMoney'>Get Spent Money</button>
<p><span id="spentValue"></span></p>
#inputText {
  height: 200px;
  width: 100%;
  padding: 0;
  margin: 0;
}
.hidden {
  visibility: hidden;
}
window.texts = [];

/* снипет для правильной записи в дневник */
window.addEventListener("load", function () {
  var t = document.querySelector("#inputText");
  var h1 = document.querySelector("h1");
  var c = document.querySelector("#convert");
  var normaliseText = "";

  c.onclick = function () {
    var text = getNormaliseText();
    setNormaliseText(text);
  };

  t.onfocus = function () {
    h1.style.color = "darkgoldenrod";
  };

  t.onpaste = function () {
    h1.innerText = 'Нажмите кнопку "Convert"';
    h1.style.color = "darkgreen";
  };

  function setNormaliseText(text) {
    t.value = text;
    t.scrollTop = 0;
    t.select();

    h1.innerText = "Готово. Скопируйте или узнайте счет";
    h1.style.color = "green";
  }

  function getNormaliseText() {
    var dateOnly = /^(\d+ .+\W+) \d+:\d+$/gim; /*20 Сентября 2014 Суббота 21:32 -> 20 Сентября 2014 Суббота*/
    var tValue = t.value;
    tValue = tValue.replace(dateOnly, "$1");

    var arrayT = tValue.split("-------------------------");
    var normalMaslT = arrayT.reverse();

    setTexts(normalMaslT);

    return normalMaslT.join("").trim();
  }

  function setTexts(array) {
    window.texts = array;
  }
});

window.addEventListener("load", function () {
  window.t = document.querySelector("#inputText");

  var g = document.querySelector("#getSpentMoney");
  var spentValue = document.querySelector("#spentValue");

  g.onclick = function () {
    var allSpentMoney = runSpentMoney();

    spentValue.textContent = "потрачено " + getSumRub(allSpentMoney);
  };

  function runSpentMoney() {
    var allSpentMoney = 0.0;

    if (window.texts.length) {
      window.texts.forEach(function (str) {
        var monthSpentMoney = spentMoney(str);

        allSpentMoney += monthSpentMoney;
      });
    } else {
      alert("Данные пусты!");
    }

    return allSpentMoney;
  }

  //выводим сумму
  function getSumRub(money) {
    var options = { style: "currency", currency: "RUB" };
    var numberFormat = new Intl.NumberFormat("ru-RU", options);

    return numberFormat.format(money);
  }

  function spentMoney(str) {
    var allSum = 0.0;

    if (str.length <= 1) return allSum;

    str = str.trim();

    //Находим число месяца
    var regExpMonthNumber = /^\d+ (?=Января|Февраля|Марта|Апреля|Мая|Июня|Июля|Августа|Сентября|Октября|Ноября|Декабря)/gi;
    var monthNumber = str.match(regExpMonthNumber);
    //удаляем из поиска строчку число месяца
    str = str.replace(regExpMonthNumber, "");

    //находим год
    var regExpYear = /\d+ (?=Понедельник|Вторник|Среда|Четверг|Пятница|Суббота|Воскресенье)/gi;
    var year = str.match(regExpYear);
    //удаляем строчку о найденном годе
    str = str.replace(regExpYear, "");

    //находим вес
    var regExpWeight = /вес.\d+(,|\.).+/gi;
    var weight = str.match(regExpWeight);
    //удаляем строчку о своем весе
    str = str.replace(regExpWeight, "");

    //находим свою зп
    var regExpMyZP = /(зп|зарплата).+\d/gi;
    var myZP = str.match(regExpMyZP);
    //удаляем из поиска строчку о зарплате
    str = str.replace(regExpMyZP, "");

    //находим цифры потраченное
    var regExpNumbers = /(Магазин|Магаз|\w)(\d+)(к|р|руб| р| руб| рублей | |\n)/gi;
    var numbers = str.match(regExpNumbers);
    allSum = getAllSum();

    return allSum;

    /* ********************************************************************** */

    function getAllSum() {
      var daySpentMoney = 0.0;

      if (numbers) {
        numbers.forEach(function (number) {
          number = number.replace(/р|руб| р| руб| рублей/i, "");
          number = number.replace(/к/i, function (x, l, o) {
            return "000";
          });

          console.log(number);

          if (number.match(/^\d/) > "0") {
            number = number.replace(/\W/gi, "");
            number = parseFloat(number);

            daySpentMoney += number;
          }
        });
      }

      return daySpentMoney;
    }
  }
});
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.