@deanisy/multi-rubles
Version:
Стоимость прописью с любыми наименованиями валютных единиц
1 lines • 2.06 kB
JavaScript
!function(){"use strict";var r,t,e=[["","один","два","три","четыре","пять","шесть","семь","восемь","девять","десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"],["","","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"],["","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"]],n=function(r){return parseFloat(r)},u=function(r,t){if(3!==t.length)return!1;r=Math.abs(r)%100;var e=r%10;return r>10&&r<20?t[2]:e>1&&e<5?t[1]:1===e?t[0]:t[2]},s=function(t,s){var i,a,f="";return 3===t.length&&(i=t.substr(0,1),t=t.substr(1,3),f=e[2][i]+" "),t<20?f=f+e[0][n(t)]+" ":(i=t.substr(0,1),a=t.substr(1,2),f=f+e[1][i]+" "+e[0][a]+" "),0===s?f+=u(t,r[0]):1===s?" "!==f&&(f+=u(t,["тысяча ","тысячи ","тысяч "]),f=f.replace("один ","одна ").replace("два ","две ")):2===s?" "!==f&&(f+=u(t,["миллион ","миллиона ","миллионов "])):3===s&&(f+=u(t,["миллиард ","миллиарда ","миллиардов "])),f},i=function(t){var e=u(t,r[1]);return 0===t?t="00":t<10&&(t="0"+t)," "+t+" "+e},a=function(t,e){if(r=e||[["рубль","рубля","рублей"],["копейка","копейки","копеек"]],!t)return!1;var u=typeof t;if("number"!==u&&"string"!==u)return!1;if("string"===u&&(t=n(t.replace(",",".")),isNaN(t)))return!1;if(t<=0)return!1;var a,f;t=t.toFixed(2),-1!==t.indexOf(".")&&(a=t.split("."),t=a[0],f=a[1]);for(var l,o="",c=t.length-1,p="",b=0;c>=0;)l=t.substr(c,1),p=l+p,3!==p.length&&0!==c||isNaN(n(p))||(o=s(p,b)+o,p="",b++),c--;return o=o.replace(/\s+/g," "),f&&(o+=i(n(f))),o};t="undefined"!=typeof module&&null!==module?exports:window,t.rubles=a}();