bd_number
Version:
This package is for bangla number conversion
279 lines (269 loc) • 7.08 kB
JavaScript
/**
* @param {String} banglaNumber
* @return {String}
*/
function bnToEnNum(banglaNumber) {
banglaNumber = String(banglaNumber);
String.prototype.gValue = function () {
const enumStore = {
"০": "0",
"১": "1",
"২": "2",
"৩": "3",
"৪": "4",
"৫": "5",
"৬": "6",
"৭": "7",
"৮": "8",
"৯": "9",
};
let gx = this;
for (let x in enumStore) {
gx = gx.replace(new RegExp(x, "g"), enumStore[x]);
}
return gx;
};
return banglaNumber.gValue();
}
/**
* @param {String} englishNumber
* @return {String}
*/
function enToBnNum(englishNumber) {
englishNumber = String(englishNumber);
String.prototype.gValue = function () {
const bNumStore = {
"0": "০",
"1": "১",
"2": "২",
"3": "৩",
"4": "৪",
"5": "৫",
"6": "৬",
"7": "৭",
"8": "৮",
"9": "৯",
};
let gx = this;
for (let x in bNumStore) {
gx = gx.replace(new RegExp(x, "g"), bNumStore[x]);
}
return gx;
};
return englishNumber.gValue();
}
/**
* @param {Number} amount
* @return {String}
*/
function enToBnWord(amount) {
var Words = [
"",
"এক",
"দুই",
"তিন",
"চার",
"পাঁচ",
"ছয়",
"সাত",
"আট",
"নয়",
"দশ",
"এগার",
"বার",
"তের",
"চৌদ্দ",
"পনের",
"ষোল",
"সতের",
"আঠার",
"ঊনিশ",
"বিশ",
"একুশ",
"বাইশ",
"তেইশ",
"চব্বিশ",
"পঁচিশ",
"ছাব্বিশ",
"সাতাশ",
"আঠাশ",
"ঊনত্রিশ",
"ত্রিশ",
"একত্রিশ",
"বত্রিশ",
"তেত্রিশ",
"চৌত্রিশ",
"পঁয়ত্রিশ",
"ছত্রিশ",
"সাঁইত্রিশ",
"আটত্রিশ",
"ঊনচল্লিশ",
"চল্লিশ",
"একচল্লিশ",
"বিয়াল্লিশ",
"তেতাল্লিশ",
"চুয়াল্লিশ",
"পঁয়তাল্লিশ",
"ছেচল্লিশ",
"সাতচল্লিশ",
"আটচল্লিশ",
"ঊনপঞ্চাশ",
"পঞ্চাশ",
"একান্ন",
"বায়ান্ন",
"তিপ্পান্ন",
"চুয়ান্ন",
"পঞ্চান্ন",
"ছাপ্পান্ন",
"সাতান্ন",
"আটান্ন",
"ঊনষাট",
"ষাট",
"একষট্টি",
"বাষট্টি",
"তেষট্টি",
"চৌষট্টি",
"পঁয়ষট্টি",
"ছেষট্টি",
"সাতষট্টি",
"আটষট্টি",
"ঊনসত্তর",
"সত্তর",
"একাতর",
"বাহাত্তর",
"তিয়াত্তর",
"চুয়াত্তর",
"পঁচাত্তর",
"ছিয়াত্তর",
"সাতাত্তর",
"আটাত্তর",
"ঊনআশি",
"আশি",
"একাশি",
"বিরাশি",
"তিরাশি",
"চুরাশি",
"পঁচাশি",
"ছিয়াশি",
"সাতাশি",
"আটাশি",
"ঊননব্বই",
"নব্বই",
"একানব্বই",
"বিরানব্বই",
"তিরানব্বই",
"চুরানব্বই",
"পঁচানব্বই",
"ছিয়ানব্বই",
"সাতানব্বই",
"আটানব্বই",
"নিরানব্বই",
];
amount = amount.toString();
var atemp = amount.split(".");
var before_word = "";
var after_word = "";
var before_number = atemp[0];
if (before_number !== "0") {
before_word = toWord(before_number, Words);
}
if (atemp.length === 2) {
var after_number = atemp[1];
after_word = toWord(after_number, Words);
if (before_word !== "") {
before_word += " দশমিক " + after_word;
} else {
before_word += "দশমিক " + after_word;
}
}
return before_word;
}
function toWord(number, words) {
var n_length = number.length;
var words_string = "";
if (n_length <= 9) {
var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0);
var received_n_array = new Array();
for (var i = 0; i < n_length; i++) {
received_n_array[i] = number.substr(i, 1);
}
for (var i = 9 - n_length, j = 0; i < 9; i++, j++) {
n_array[i] = received_n_array[j];
}
for (var i = 0, j = 1; i < 9; i++, j++) {
if (i == 0 || i == 2 || i == 4 || i == 7) {
if (n_array[i] == 1) {
n_array[j] = 10 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 2) {
n_array[j] = 20 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 3) {
n_array[j] = 30 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 4) {
n_array[j] = 40 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 5) {
n_array[j] = 50 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 6) {
n_array[j] = 60 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 7) {
n_array[j] = 70 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 8) {
n_array[j] = 80 + parseInt(n_array[j]);
n_array[i] = 0;
} else if (n_array[i] == 9) {
n_array[j] = 90 + parseInt(n_array[j]);
n_array[i] = 0;
}
}
}
var value = "";
for (var i = 0; i < 9; i++) {
value = n_array[i];
if (value != 0) {
words_string += words[value] + "";
}
if (
(i == 1 && value != 0) ||
(i == 0 && value != 0 && n_array[i + 1] == 0)
) {
words_string += " কোটি ";
}
if (
(i == 3 && value != 0) ||
(i == 2 && value != 0 && n_array[i + 1] == 0)
) {
words_string += " লাখ ";
}
if (
(i == 5 && value != 0) ||
(i == 4 && value != 0 && n_array[i + 1] == 0)
) {
words_string += " হাজার ";
} else if (i == 6 && value != 0) {
words_string += "শ ";
}
}
words_string = words_string.split(" ").join(" ");
}
return words_string;
}
// Phone Number Validation
const { getNumInfo, isValidPhone } = require("./phone/index");
// End Phone Number Validation
// numToWord
const { numToBDTWord } = require("../lib/numToWord/index");
// numToWord End
module.exports = {
bnToEnNum,
enToBnNum,
enToBnWord,
getNumInfo,
isValidPhone,
numToBDTWord,
};