JSFiddle - React, Tailwind, and code Playground
by Alexey Ukolov
HTML
<div>Л/С: <span id="account"></span></div>
<div>Сумма: <span id="amount"></span></div>
JavaScript
var barcode = 'ST00012|Name=ЖЭК "Каменные палатки"|PersonalAcc=40705810273110000006|BankName=Свердловской РФ АО "Россельхозбанк"|BIC=046577922|CorrespAcc=30101810100000000922|PayeeINN=6660088450|PersAcc=00000001|LastName=ШИШКИН|FirstName=А|MiddleName=А|Sum=114541|Purpose=Оплата капитального ремонта|PayerAddress=Сиреневый бульвар 9 кв. 1|AddAmount=0';
var result = {};
var account;
if (barcode.indexOf("PersAcc=") != -1) {
var i = barcode.indexOf("PersAcc=") + 8;
account = barcode.substr(i, 8);
result["account"] = account;
console.log(
barcode.indexOf("Sum="),
barcode.indexOf("Sum=") + 4,
barcode.indexOf("|", 242),
barcode.substr(242, (barcode.indexOf("|", 242) - 242)),
barcode.substr(242, (barcode.indexOf("|", 242) - 242)) / 100
);
if (barcode.indexOf("Sum=") != -1) { // true - barcode.indexOf("Sum=") => 238
var i = barcode.indexOf("Sum=") + 4; // 238 + 4 = 242
var ind = barcode.indexOf("|", i); // 248 - теперь всё правильно
var amount_text = barcode.substr(i, (ind - i)); // 114541
var amount = amount_text / 100; // 1145,41
result["amount"] = amount;
}
}
document.querySelector('#account').innerText = result.account;
document.querySelector('#amount').innerText = result.amount;