UNPKG

@gratcy/angka-terbilang-indonesia

Version:

Angka Terbilang in NodeJS for Converting Decimal to an Indonesian Wording format

6 lines (4 loc) 4.49 kB
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.angka = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.toTerbilang=toTerbilang;var langArr={id:{angka:["","satu","dua","tiga","empat","lima","enam","tujuh","delapan","sembilan"],satuan:["","ribu","juta","milyar","triliun","quadriliun","quintiliun","sextiliun","septiliun","oktiliun","noniliun","desiliun","undesiliun","duodesiliun","tredesiliun","quattuordesiliun","quindesiliun","sexdesiliun","septendesiliun","oktodesiliun","novemdesiliun","vigintiliun"],sepuluh:"sepuluh",sebelas:"sebelas",belas:"belas",seratus:"seratus",seribu:"seribu",puluh:"puluh",ratus:"ratus",nol:"nol",koma:"koma"},en:{angka:["","one","two","three","four","five","six","seven","eight","nine"],satuan:["","thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","decillion","undecillion","duodecillion","tredecilion","quattuordecilion","quindecilion","sexdecilion","septendecilion","octodecilion","novemdesiliun","vigintillion"],sepuluh:"ten",sebelas:"eleven",belas:"teen",seratus:"one hundred",seribu:"one thousand",puluh:"ty",ratus:"hundred",nol:"zero",koma:"and",two:"twen",three:"thir",four:"for",five:"fif",six:"six",seven:"seven",eight:"eight",nine:"nine",duabelas:"twelve",tigabelas:"thirteen"}},arrAngka=langArr.id.angka,arrSatuan=langArr.id.satuan,lang="id";function toTerbilang(n){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{dec:".",lang:"id"},r=(n=String(n)).split(a.dec||".");"en"===a.lang?(arrAngka=langArr.en.angka,arrSatuan=langArr.en.satuan,lang="en"):(arrAngka=langArr.id.angka,arrSatuan=langArr.id.satuan,lang="id");for(var e="",l=0;l<r.length;++l)e+=1===l?" ".concat(langArr[lang].koma," ")+terbilangDecimal(r[l]):terbilang(r[l]);return e.trim()}function replaceString(n,a){return n.replace(a,"")}function terbilangDecimal(n){for(var a=n.split(""),r="",e=0;e<a.length;++e)"0"===a[e]?r+=" "+langArr[lang].nol:r+=" "+langArr[lang].angka[parseInt(a[e])];return r.trim()}function terbilang(n){var a,r;if(isNaN(Number(n)))return"Error, input is not a valid number!";var e=n.length-1;if(0===e&&0===Number(n[0]))return langArr[lang].nol;if(e/3>arrSatuan.length)return"Error, number is to big!";for(var l="",i=0,t=0;t<=e;t++){var g="",u=e-t,s=u%3,o=Number(n[t]);switch(o){case 1:switch(s){case 2:g+=langArr[lang].seratus;break;case 1:var d=Number(n[t+1]);switch(d){case 1:g+=langArr[lang].sebelas;break;case 0:g+=langArr[lang].sepuluh;break;default:if("en"===lang)if("two"===arrAngka[d])g+=langArr[lang].duabelas;else if("three"===arrAngka[d])g+=langArr[lang].tigabelas;else{g+=(null!==(a={one:"",two:langArr[lang].two,three:langArr[lang].three,four:langArr[lang].four,five:langArr[lang].five,six:langArr[lang].six,seven:langArr[lang].seven,eight:langArr[lang].eight,nine:langArr[lang].nine}[arrAngka[d]])&&void 0!==a?a:"")+langArr[lang].belas}else g+=arrAngka[d]+" ".concat(langArr[lang].belas)}t++,u--,s--;break;case 0:if(1===o&&3===u&&(2===i||3===e)){""!==l&&(l+=" "),l+=langArr[lang].seribu,i=0;continue}g+=arrAngka[o]}break;case 0:i++;break;default:switch(g+=arrAngka[o],s){case 2:g+=" ".concat(langArr[lang].ratus);break;case 1:if("en"===lang)g=replaceString(g+=(null!==(r={one:"",two:langArr[lang].two,three:langArr[lang].three,four:langArr[lang].four,five:langArr[lang].five,six:langArr[lang].six,seven:langArr[lang].seven,eight:langArr[lang].eight,nine:langArr[lang].nine}[arrAngka[o]])&&void 0!==r?r:"")+langArr[lang].puluh,arrAngka[o]);else g+=" ".concat(langArr[lang].puluh)}}""!==g&&(l+=""!==l?" "+g:g);var A=u/3;0===s&&0!==A&&(3!==i&&(l+=" "+arrSatuan[A]),i=0)}return l}exports.default=toTerbilang; },{}]},{},[1])(1) });