Comment formater des nombres au format monétaire en JavaScript ?
Le langage JavaScript ne gère pas les formats monétaires nativement. Il est nécessaire de créer sa propre fonction pour formater un nombre selon le format monétaire de son pays.
Pour que la fonction soit simple à utiliser, il faut la déclarer avec comme classe Number.prototype. De cette manière, il suffira d'écrire le nombre suivi du caractère . et de la fonction pour qu'il soit automatiquement converti au format monétaire. Cette fonction prendra comme paramètre le nombre de décimales souhaité, le séparateur entre la partie entière et la partie décimale, celui des milliers ainsi que l'unité monétaire. Il est conseillé de tester ses valeurs afin de pouvoir utiliser une valeur par défaut et ne pas préciser à chaque fois ces valeurs. On va tout d'abord récupérer le signe du nombre. Ensuite, avec les méthodes parseInt() et Math.abs(), on va récupérer la partie entière du nombre. Après, il faut séparer la partie située après le séparateur des milliers de la partie située avant. La dernière instruction utilise des expressions régulières pour afficher le nombre dans le format souhaité.
Number.prototype.formatMonetaire = function(nbDecimales, sepDecimale, sepMilliers, unite) { var nombre = this, nbDecimales = isNaN(nbDecimales = Math.abs(nbDecimales)) ? 2 : nbDecimales; //On fixe les valeurs par défaut si elles n'ont pas été indiquées en paramètre de la commande if (sepDecimale === 'undefined') sepDecimale = ','; if (sepMillier === 'undefined') sepMillier = ' '; if (unite == 'undefined') unite = '€'; var signe = nombre < 0 ? - : ; //On récupère la partie absolue du nombre var partieEntiere = parseInt(nombre = Math.abs(+nombre