Como formatar valores de preços para Real

Usando um script e passando o input o do usuário como entrada, você pode formatar o valor em moeda em Real.

const run = (valor) => {
    valor = parseFloat(valor).toFixed(2);
    valor = valor.toString().replace(/\D/g,"");
    valor = valor.toString().replace(/(\d)(\d{8})$/,"$1.$2");
    valor = valor.toString().replace(/(\d)(\d{5})$/,"$1.$2");
    valor = valor.toString().replace(/(\d)(\d{2})$/,"$1,$2");
    return  valor;
}

Essa forma encontrei nessa fonte: Formatar valor Float como moeda usando Jquery - Stack Overflow em Português

Realizei a pesquisa em jQuery, pois não estava conseguindo trabalhar com funcionalidade mais atuais no caso o Intl formato de moeda de acordo com o pais que desejar.

Ex.: valor 16 → 16,00 | 160.00 → 160,00 | 1600.56 → 1.600,56.

Obs.: caso você queira com o valor R$ na frente é só fazer uma concatenação na linha do return.
return R$ ${valor};

Lembre-se estou postando dessa forma, pois não estava funcionando usando assim toLocaleString e o Intl:

const run = (money) => {
    const formatedMoney = parseFloat(money).toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });
    return R$ ${formatedMoney};
}

5 curtidas

MUITO BRABO FILHO, esse dez é dez mesmo

3 curtidas