Agregando separador de miles en Flex4

02 Feb 2011


En el día de ayer necesitaba utilizar algún método de separación de miles (un formateador numérico) para unos valores que estaban siendo regresados desde un data provider específico. El NumberFormatter de ActionScript no era una opción viable, ya que por alguna extraña razón no funcionaba. La idea era conseguir un método nuevo para hacerlo y a mi cabeza la única que se me ocurrió fue realizar divisiones o separar el número en secciones de 3 y hacer un “join” luego.

Como yo suelo tener soluciones no tan optimizadas, decidí buscar en el tan querido StackOverflow donde a mi sorpresa, encontré una solución mucho más inteligente: usar expresiones regulares. El código (en JavaScript) fue el siguiente: function numberWithCommas(x) { return x.toString().replace(/\B(?=(?:\d{3})+(?!\d))/g, “,”); }

Mi compañero Eivar se tomó la delicadeza de explicar de una excelente forma todo el código. Ahora faltaba implementarlo en ActionScript y la solución era muy sencilla de igual manera, cree una clase nueva para formateo de números y dentro un método para el formateo, este método (muy sencillo se ve de la siguiente forma: public function formatThousands(number:String):String { return number.replace(/\B(?=(?:\d{3})+(?!\d))/g, “,”);; }

Con esto conseguimos fácilmente que nuestro número de 1000 se vea como 1,000. Para entender la expresión regular recomiendo grandemente que se den por la explicación de Eivar (¡gracias, por cierto!).


Demóstenes García G.

Ingeniero Electrónico con experiencia en Ingeniería y Desarrollo de Software. Agilista, interesado en Analítica y Ciencia de Datos. Co-fundador en Pixmat, CIO en IFARHU. Twitter.