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.
Función para formatear dinero en JavaScript
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
Usar función
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.
Descargar ejemplo
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.
Probar ejemplo online
Aquí dejo un replit para que pruebes el ejemplo online:
0 Comentarios