var th = ['', 'thousand', 'million', 'billion', 'trillion'];
var dg = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
var tn = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'];
var tw = ['twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
function toWords(numToConvert, isDecimalPart=false) {
numToConvert = numToConvert.toString();
numToConvert = numToConvert.replace(/[\, ]/g, '');
if (numToConvert != parseFloat(numToConvert)) return 'not a number';
var numLength = numToConvert.indexOf('.');
if (numLength == -1) numLength = numToConvert.length;
if (numLength > 15) return 'too big';
var numArray = numToConvert.split('');
var str = '';
var sk = 0;
for (var i = 0; i < numLength; i++) {
if ((numLength - i) % 3 == 2) {
if (numArray[i] == '1') {
str += tn[Number(numArray[i + 1])] + ' ';
i++;
sk = 1;
} else if (numArray[i] != 0) {
str += tw[numArray[i] - 2] + ' ';
sk = 1;
}
} else if (numArray[i] != 0) {
str += dg[numArray[i]] + ' ';
if ((numLength - i) % 3 == 0) {
str += 'hundred ';
if (numArray[i+2] != 0 ||
(numArray[i+2] == 0 && numArray[i+1] != 0)) str += 'and ';
}
sk = 1;
}
if ((numLength - i) % 3 == 1) {
if (sk) {
str += th[(numLength - i - 1) / 3] + ' ';
if (numArray[i+1] == 0 && numArray[i+2] == 0
&& numArray[i+3] != 0) str += 'and ';
}
sk = 0;
}
}
//Add the currency string. In the example below, we use the "Dollars". in your case, you may want to chgange it to Naira...
str += isDecimalPart ? '' : 'Dollars ';
if (numLength != numToConvert.length) {
var y = numToConvert.length;
var decimalPart = numToConvert.substring(numLength + 1);
decimalPart = decimalPart.length == 1 ? decimalPart + "0" : decimalPart;
str += toWords(decimalPart, true);
str += 'Cents ';
}
return str.replace(/\s+/g, ' ').toUpperCase();
}
if (this.amountField) return toWords(this.amountField);
else return "";