JSFiddle - React, Tailwind, and code Playground

by zav19791979

HTML

<label>Первый инпут <input class="points__results--input" value="8.500,99 PLN"></label>
<br><br><br>
<label>Второй инпут <input id="number-points"></label>
<br><br><br>
<label>Третий инпут <input id="result-points"></label>

JavaScript

const rubsToKopecks = (rubs) => rubs * 100; // преобразовываем рубли в копейки

const extractValueInKopecks = (input) => {
	const rawValue = $(input).val() || ''; // получили занчение или пустую строку
  let processedValue = rawValue.replace(/PLN/g, "").trim(); // удаляем конечную подпись к занчению и пробелы
 
 
 const valParts = processedValue.split(','); // разделили число на рубли и копейки (получили массив где 0 - это рубли, 1 - копейки)
 //const rubs = (valParts[0] || '0').replace(/\./g, '') // получили строку с числом рублей
 const rubsString = (valParts[0] || '0') // получили строку с числом рублей
 const rubsParts = rubsString.split('.') // получили строки с тысячами(которых может и не быть) и рублями
 const thousandRubs = rubsParts.length === 2 ? rubsParts[0] : '0'; // получили строку с тысячами рублей
 const rubs = rubsParts.length === 2 ? rubsParts[1] : rubsParts[0]; // получили строку с количеством рублей
 const allRubs = parseInt(thousandRubs) * 1000 + parseInt(rubs); // получили число с количеством рублей
 const kopecks = parseInt(valParts[1] || '0') // получили число с количеством копеек

 return rubsToKopecks(allRubs) + kopecks; // перевели рубли в копейки, сложили с копейками и вернули результат
}

$(document).ready(function () { 
   const firstInput = $(".points__results--input");
   const secondInput = $("#number-points");
   const thirdInput = $("#result-points");
   
   secondInput.keyup(function () {
   	const firstKopecks = extractValueInKopecks(firstInput); // получили значение первого инпута в копейках (число)
    const secondKopecks = extractValueInKopecks(secondInput); // получили значение второго инпута в копейках (число)
    const allKopeks = firstKopecks + secondKopecks; // получили сумму всех инпутов в копейках (число)
    
    
    const resultKopeks = allKopeks % 100; // извлеки остатки копеек (число) 
    let resultRubs = Math.floor(allKopeks / 100); // извлекли из копеек рубли (число)
    const resultThousandRubs =...