[Resuelto] ¿Alguien me podría explicar que significa este pequeño código?

Iniciado por Leguim, 24 Agosto 2019, 20:05 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

Buenos días, me gustaría saber que hace este código.
Su función sería recibir como parámetro un numero "150000" y devolvería o lo transformaría en "150.000", un problema con esta función es que el "1000" no lo transforma en "1.000" comienza a transformar cuando hay 4 ceros o más. Pero para poder resolver eso primero necesito entender que quiere decir el código jeje

Código (javascript) [Seleccionar]

function formatNumber(n)
{
n = String(n).replace(/\D/g, "");
  return n === '' ? n : Number(n).toLocaleString();
}


Gracias!

#!drvy

Código (javascript) [Seleccionar]
n = String(n).replace(/\D/g, "");

Esto lo que hace es buscar cualquier cosa que no sea un número (\D) y quitarlo. Es un regex. En el fondo, lo que hace es borrar todo los caracteres que no sean un numero y asigna a n los números.

Código (javascript) [Seleccionar]
return n === '' ? n : Number(n).toLocaleString();

Comprueba si esta vacía en cuyo caso la devuelve o si no esta vacía devuelve un numero formateado con toLocaleString().





A ti lo que te interesa de ese código es toLocaleString().

https://developer.mozilla.org/es/docs/Web/javascript/Referencia/Objetos_globales/Number/toLocaleString
El método toLocaleString() retorna una cadena que contiene una representación del número acorde al idioma.

Si lo que te interesa es imprimir moneda, puedes usar:

Código (javascript) [Seleccionar]
number.toLocaleString(undefined, { style: 'currency', currency: 'EUR'})


Ten en cuenta que si no defines el locale (primer parámetro), intenta determinarlo del navegador. Mi navegador por ejemplo esta configurado en ingles entonces me toma el modo de representar números inglés, creo que estadounidense en concreto xD.

Saludos