menu
Uveb

22:31
Сума прописом українською мовою на Java Script
Реалізація скрипту Js, який виведе введену суму у гривнях прописом на українській мові.
Для розділення суми на копійки використовуйте крапку або кому. Підійде для інтернет-магазинів, онлайн реалізації видаткових накладних, розрахункових рахунків і т.д.

Сума прописом на Java Script

Введіть суму у поле

Html

Код
<body oninput="num2str(this.title, 'str')" title="" id="nambers">
<input type="number" style="width: 200px;" oninput="namber()" id="namber" placeholder="0.00грн.">
<div id="str"></div>
</body>

Js

Код
<script>
function namber() {
var namber = document.getElementById("namber").value;
document.getElementById("nambers").title = namber;
}
var money;
var price;
var rub, kop;
var litera = sotny = desatky = edinicy = minus = "";
var k = 0, i, j;
N = ["", "одна", "два", "три", "чотири", "п'ять", "шість", "сім", "вісім", "дев'ять",
  "", "одиннадцять", "дванадцять", "тринадцять", "чотирнадцять", "п'ятнадцять", "шістнадцять", "сімнадцять", "вісімнадцять", "дев'ятнадцять",
  "", "десять", "двадцять", "тридцять", "сорок", "п'ятдесят", "шістдесят", "сімдесят", "вісімдесят", "дев'яносто",
  "", "сто", "двісті", "триста", "чотириста", "п'ятсот", "шістсот", "сімсот", "вісімсот", "дев'ятсот",
  "тисяч", "тисяча", "тисячі", "тисячі", "тисячі", "тисяч", "тисяч", "тисяч", "тисяч", "тисяч",
  "міліонів", "міліон", "міліона", "міліона", "міліона", "міліонів", "міліонів", "міліонів", "міліонів", "міліонів",
  "мільярдів", "мільярд", "мільярда", "мільярда", "мільярда", "мільярдів", "мільярдів", "мільярдів", "мільярдів", "мільярдів"];
var M = new Array(10);
for (j = 0; j < 10; ++j)
  M[j] = new Array(N.length);
for (i = 0; i < N.length; i++)
  for (j = 0; j < 10; j++)
  M[j][i] = N[k++]
var R = new Array("гривень", "гривня", "гривні", "гривні", "гривні", "гривень", "гривень", "гривень", "гривень", "гривень");
var K = new Array("копійок", "копійка", "копійки", "копійки", "копійки", "копійок", "копійок", "копійок", "копійок", "копійок");
function num2str(money, target) {
  rub = "", kop = "";
  money = money.replace(",", ".");
if (isNaN(money)) {
  document.getElementById(target).innerHTML = "Не числове значення";
  return
  }
  if (money.substr(0, 1) == "-") {
  money = money.substr(1);
  minus = "мінус "
  }
  else minus = "";
  money = Math.round(money * 100) / 100 + "";
if (money.indexOf(".") != -1) {
  rub = money.substr(0, money.indexOf("."));
  kop = money.substr(money.indexOf(".") + 1);
  if (kop.length == 1) kop += "0";
  }
  else rub = money;
if (rub.length > 12) {
  document.getElementById(target).innerHTML = "Занадто велике число";
  return
  }
ru = propis(price = rub, R);
  ko = propis(price = kop, K);
  ko != "" ? res = ru + " " + ko : res = ru;
  ru == "Нуль " + R[0] && ko != "" ? res = ko : 0;
  kop == 0 ? res += " нуль " + K[0] : 0;
  document.getElementById(target).innerHTML = (minus + res).substr(0, 1).toUpperCase() + (minus + res).substr(1);
}
function propis(price, D) {
  litera = "";
  for (i = 0; i < price.length; i += 3) {
  sotny = desatky = edinicy = "";
  if (n(i + 2, 2) > 10 && n(i + 2, 2) < 20) {
  edinicy = " " + M[n(i + 1, 1)][1] + " " + M[0][i / 3 + 3];
  i == 0 ? edinicy += D[0] : 0;
  }
  else {
  edinicy = M[n(i + 1, 1)][0];
  (edinicy == "один" && (i == 3 || D == K)) ? edinicy = "одна" : 0;
  (edinicy == "два" && (i == 3 || D == K)) ? edinicy = "дві" : 0;
  i == 0 && edinicy != "" ? 0 : edinicy += " " + M[n(i + 1, 1)][i / 3 + 3];
  edinicy == " " ? edinicy = "" : (edinicy == " " + M[n(i + 1, 1)][i / 3 + 3]) ? 0 : edinicy = " " + edinicy;
  i == 0 ? edinicy += " " + D[n(i + 1, 1)] : 0;
  (desatky = M[n(i + 2, 1)][2]) != "" ? desatky = " " + desatky : 0;
  }
  (sotny = M[n(i + 3, 1)][3]) != "" ? sotny = " " + sotny : 0;
  if (price.substr(price.length - i - 3, 3) == "000" && edinicy == " " + M[0][i / 3 + 3]) edinicy = "";
  litera = sotny + desatky + edinicy + litera;
  }
  if (litera == " " + R[0]) return "нуль" + litera;
  else return litera.substr(1);
}
function n(start, len) {
  if (start > price.length) return 0;
  else return Number(price.substr(price.length - start, len));
}</script>
Категорія: JavaScript | Переглядів: 1169 | Додав: Uveb | Теги: калькулятор, text, Числа, Сума, JavaScript | Рейтинг: 3.0/2