diff options
Diffstat (limited to 'public/projects/js-small-apps/budget-app/lib/utils')
| -rw-r--r-- | public/projects/js-small-apps/budget-app/lib/utils/currency.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/public/projects/js-small-apps/budget-app/lib/utils/currency.js b/public/projects/js-small-apps/budget-app/lib/utils/currency.js new file mode 100644 index 0000000..04d3ad0 --- /dev/null +++ b/public/projects/js-small-apps/budget-app/lib/utils/currency.js @@ -0,0 +1,47 @@ +/** + * Convert a number to fr_FR locale. + * @param {Number} number A number to format. + * @returns A number formatted with fr_FR locale. + */ +const getCurrencyFR = (number) => { + const formatted = + Number.parseFloat(number) + .toFixed(2) + .replace(".", ",") + .replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ") + " €"; + return formatted; +}; + +/** + * Convert a number to en_US locale. + * @param {Number} number A number to format. + * @returns A number formatted with en_US locale. + */ +const getCurrencyUS = (number) => { + const formatted = + "$" + + Number.parseFloat(number) + .toFixed(2) + .replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"); + return formatted; +}; + +/** + * Get a number formatted based on a locale. + * @param {Number} number A number to format. + * @param {String} format A language code. + * @returns A formatted number. + */ +const getCurrencyFormat = (number, format) => { + switch (format) { + case "fr-FR": + return getCurrencyFR(number); + case "en-US": + return getCurrencyUS(number); + default: + console.log("Not supported!"); + break; + } +}; + +export default getCurrencyFormat; |
