Blog de conocimiento gratuito: linux, programación, open source, bases de datos, android, frameworks, web e informática en general.
Anteriormente vimos un filtro de Vue.JS para transformar un número a moneda; es decir, de un número entero o flotante, obtener su representación legible para el ser humano.
Pues bien, no todos programamos en Vue, y la instalación de la librería citada es un poco compleja si queremos cosas simples, así que me di a la tarea de crear mi propia función para formatear dinero en Javascript.
Es una función que convierte un flotante a moneda, escrita en JavaScript puro. Se puede configurar de varias maneras para poner un separador de miles personalizado, un símbolo de acuerdo al país, etcétera.
La función que presento usa funciones flecha, plantillas de cadena y let y const para usar las últimas características del lenguaje. Recibe el número que se va a formatear como moneda, y devuelve una cadena con el número formateado como dinero.
Adicionalmente recibe un objeto de configuraciones en donde se pone el separador de miles, el símbolo y otras cosas. El código fuente y su uso es el siguiente:
En el ejemplo muestro (así me imagino que es, si no es así, de todos modos sirve para ejemplificar) cómo formatear dólares y pesos mexicanos. Si no se proporciona el argumento o no
Simplemente tienes que incluir a la función y después podrás formatear dinero con JavaScript desde cualquier lugar o framework, gracias a que está escrito en JS puro; sin librerías adicionales.
Arriba mostré cómo llamar a la función; puedes modificarla a tu gusto y necesidades.
Por cierto, como lo dije, el segundo parámetro es opcional. La función puede llamarse así:
aMoneda(123);
Sin el objeto de configuraciones, tomará los que tiene por defecto. Para alinear el separador utiliza la letra i o la letra d.
Si quieres, puedes probar el ejemplo de código. Para ello, ejecuta el código en la consola del navegador o instala Node, navega hasta donde tengas el archivo y ejecuta node archivo.js
dependiendo del nombre del archivo.
Aquí dejo un replit para que pruebes el ejemplo online: