Uma formatação muito usada em apresentação de números e a formatação monetária.
Criamos uma função bem simples, para realizar esta representação.
function formatReal( int ) { var tmp = int+''; var neg = false; if(tmp.indexOf("-") == 0){ neg = true; tmp = tmp.replace("-",""); } if(tmp.length == 1) tmp = "0"+tmp tmp = tmp.replace(/([0-9]{2})$/g, ",$1"); if( tmp.length > 6) tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2"); if( tmp.length > 9) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g,".$1.$2,$3"); if( tmp.length > 12) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g,".$1.$2.$3,$4"); if( tmp.length > 15) tmp = tmp.replace(/([0-9]{3}).([0-9]{3}).([0-9]{3}).([0-9]{3}),([0-9]{2}$)/g,".$1.$2.$3.$4,$5"); if(tmp.indexOf(".") == 0) tmp = tmp.replace(".",""); if(tmp.indexOf(",") == 0) tmp = tmp.replace(",","0,"); return (neg ? '-'+tmp : tmp); }
Para testar você pode testar a seguinte chamada:
formatReal(150000000000000) // saida "1.500.000.000.000,00" formatReal(150000) // saida "1.500,00" formatReal(1500000) // saida "15.000,00"