Formatter des valeurs monétaires en Javascript

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Avec l'avènement des applications de type "Single Page Application" (SPA), nous développeurs, sommes amenés à concevoir des applications qui tendent à réaliser de plus en plus d'opérations côté client. Lorsque l'on travaille sur les problématiques d'internationalisation, il est régulièrement nécessaire de mettre en forme des valeurs monétaires en fonction d'une devise et d'une langue qui peut varier d'un utilisateur à un autre.

Pour cela la norme ECMAScript a introduit la fonction Number.prototype.toLocaleString() qui permet de renvoyer chaîne de caractères représentant un nombre en tenant compte de la locale. Cette dernière gère également la mise en forme des valeurs monétaires.

var balance = 4200.5;

console.log(balance.toLocaleString('fr-FR', {
  style: "currency",
  currency: "EUR"
})); // => 4 200,50 €

console.log(balance.toLocaleString('en-US', {
  style: "currency",
  currency: "EUR"
})); // => $4,200.50

Malheureusement, cette API n'est pas encore disponible dans tous les navigateurs. Et malgré de nombreuses recherches, je ne suis pas parvenu à trouver un composant ou un "polyfill" qui me convienne.

Cela jusqu'à aujourd'hui ! En effet l'OSREC Financial de Londres, vient de publier un composant permettant de gérer le formatage des valeurs monétaires compatible sur tous les navigateurs.

Bien que cette dernière ne soit pas parfaite, c'est celle qui aujourd'hui correspond le mieux à mon besoin.