Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 24 Agosto 2019, 20:05 pm



Título: [Resuelto] ¿Alguien me podría explicar que significa este pequeño código?
Publicado por: Leguim en 24 Agosto 2019, 20:05 pm
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
  1. function formatNumber(n)
  2. {
  3. n = String(n).replace(/\D/g, "");
  4.   return n === '' ? n : Number(n).toLocaleString();
  5. }
  6.  

Gracias!


Título: Re: [Pregunta]: ¿Alguien me podría explicar que significa este pequeño código?
Publicado por: #!drvy en 24 Agosto 2019, 20:59 pm
Código
  1. 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
  1. 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
  1. 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


Título: Re: [Pregunta]: ¿Alguien me podría explicar que significa este pequeño código?
Publicado por: Leguim en 24 Agosto 2019, 21:13 pm
Muchas gracias amigo, ya pude arreglarlo!