Skip to content

Instantly share code, notes, and snippets.

@jhonsore
Last active September 4, 2020 17:34
Show Gist options
  • Save jhonsore/753d82700b1880f49b60ca37807d51d2 to your computer and use it in GitHub Desktop.
Save jhonsore/753d82700b1880f49b60ca37807d51d2 to your computer and use it in GitHub Desktop.
//addapted from here: //http://wbruno.com.br/expressao-regular/formatar-em-moeda-reais-expressao-regular-em-javascript/
const convertToBrMoney = (value) => {
value = parseFloat(value);//force value to be a number
var int = parseFloat(value.toFixed(2).toString().replace(/[^\d]+/g, ''));
var tmp = int + '';
tmp = tmp.replace(/([0-9]{2})$/g, ",$1");
if (tmp.length > 6)
tmp = tmp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
tmp = value < 1 ? value.toString().replace('.', ',') : tmp;
//para números com 3 caracteres adiciona o 0 no último item
//por exemplo: 0,1 -> 0,10
//por exemplo: 1,1 -> 1,10
tmp = tmp.length === 3 ? tmp+'0' : tmp;
return value ? { formated: tmp, value } : { formated: '0,00', value};
}
console.log(convertToBrMoney(0.5));
console.log(convertToBrMoney(0.05));
console.log(convertToBrMoney(1));
console.log(convertToBrMoney(1.5));
console.log(convertToBrMoney(1.05));
console.log(convertToBrMoney(10));
console.log(convertToBrMoney(10.5));
console.log(convertToBrMoney(10.05));
console.log(convertToBrMoney(100));
console.log(convertToBrMoney(100.5));
console.log(convertToBrMoney(100.05));
console.log(convertToBrMoney(1000));
console.log(convertToBrMoney(1000.5));
console.log(convertToBrMoney(1000.05));
console.log(convertToBrMoney(10000));
console.log(convertToBrMoney(10000.5));
console.log(convertToBrMoney(10000.05));
console.log(convertToBrMoney(100000));
console.log(convertToBrMoney(100000.5));
console.log(convertToBrMoney(100000.05));
console.log(convertToBrMoney(1000000));
console.log(convertToBrMoney(1000000.5));
console.log(convertToBrMoney(1000000.05));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment