web-dev-qa-db-fra.com

Angular: Mise en forme des nombres avec des virgules

Title résume bien mes besoins.

123456789 => 123,456,789
12345 => 12,345

Quel est le meilleur moyen d'obtenir cette conversion? Ne suggérez pas de canal monétaire dans Angular-2 car je n'ai pas besoin de $ ni de symbole monétaire pour être ajouté à ma sortie.

20
BeingSuman

Utilisez DecimalPipe comme ceci

{{attr | number}}

plunker de travail

Documentation disponible sur https://angular.io/api/common/DecimalPipe

35
CodeWarrior
function printNo() {
  document.getElementById('text').innerHTML =
  Number(1234355).toLocaleString('en-GB');
}
 <!DOCTYPE html>
 <html>
    <head></head>
    
     <body onload="printNo()">
      <h1 id="text"></h1>
        
     </body>
</html>

lien de référence

6
JGFMK

Sans utiliser de tuyaux, un moyen simple de répondre à votre question avec javascript:

var str = "The quick brown fox jumps over the lazy dogs.".replace(/(.{2})/g,"$1,");

Et cela produira Th,e ,qu,ic,k ,br,ow,n ,fo,x ,ju,mp,s ,ov,er, t,he, l,az,y ,do,gs,.

Mais je pense que vous avez mal formulé votre question, alors, si vous voulez analyser des nombres, vous devriez utiliser cette fonction:

function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

Alors

var num = numberWithCommas(1234567);
console.log(num);

Cela produira 1,234,567

5
Sebastian Giro