<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;
}
}
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.