Buscar contenidos

martes, 31 de enero de 2023

Función en Javascript para mascara de moneda

 

La función toma un valor de tipo string y lo formatea como una moneda en colones utilizando la API Intl.NumberFormat(). La función también convierte el valor de string en un número flotante antes de formatearlo para asegurarse de que se formatee correctamente como una moneda.

--

function applyCurrencyMask(value) {

  const formatter = new Intl.NumberFormat('es-CR', {

    style: 'currency',

    currency: 'CRC',

    minimumFractionDigits: 2

  });

  return formatter.format(parseFloat(value));

}



function formatMoney(number, decPlaces, decSep, thouSep) {
    decPlaces = isNaN(decPlaces = Math.abs(decPlaces)) ? 2 : decPlaces,
    decSep = typeof decSep === "undefined" ? "." : decSep;
    thouSep = typeof thouSep === "undefined" ? "," : thouSep;
    var sign = number < 0 ? "-" : "";
    var i = String(parseInt(number = Math.abs(Number(number) || 0).toFixed(decPlaces)));
    var j = (j = i.length) > 3 ? j % 3 : 0;

    return sign +
        (j ? i.substr(0, j) + thouSep : "") +
        i.substr(j).replace(/(\decSep{3})(?=\decSep)/g, "$1" + thouSep) +
        (decPlaces ? decSep + Math.abs(number - i).toFixed(decPlaces).slice(2) : "");
}