number-to-rupee
Version:
Number two Rupee is a javascript library for converting numbers in Indian rupee word.
95 lines (94 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var numberToWords = function (num) {
// check the type is number or not
if (typeof num !== "number") {
throw new Error("Input must be a number");
}
var units = [
"",
"One",
"Two",
"Three",
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"Ten",
"Eleven",
"Twelve",
"Thirteen",
"Fourteen",
"Fifteen",
"Sixteen",
"Seventeen",
"Eighteen",
"Nineteen"
];
var tens = [
"",
"",
"Twenty",
"Thirty",
"Forty",
"Fifty",
"Sixty",
"Seventy",
"Eighty",
"Ninety"
];
if (num === 0) {
return "Zero";
}
if (num < 20) {
return units[num];
}
if (num < 100) {
return tens[Math.floor(num / 10)] + " " + units[num % 10];
}
if (num < 1000) {
return (units[Math.floor(num / 100)] + " Hundred " + numberToWords(num % 100));
}
if (num < 100000) {
return (numberToWords(Math.floor(num / 1000)) +
" Thousand " +
numberToWords(num % 1000));
}
if (num < 10000000) {
return (numberToWords(Math.floor(num / 100000)) +
" Lakh " +
numberToWords(num % 100000));
}
if (num < 1000000000) {
return (numberToWords(Math.floor(num / 10000000)) +
" Crore " +
numberToWords(num % 10000000));
}
return "";
};
/**
* Convert the number into Indian rupees
* @param num {number} Number to be converted
* @returns {string} Indian Rupees
*/
var numberTwoRupee = function (num) {
var output = numberToWords(num).trim();
if (output) {
if (num !== 0) {
// remove last zero
output = output.replace(/\sZero$/, "");
}
// add rupee
output = output + " " + "Rupee";
// Adding "S"
if (num > 1) {
output += "s";
}
// remove extra space
output = output.replace(/\s\s+/g, " ");
}
return output;
};
exports.default = numberTwoRupee;