Ver Mensaje Individual
  #249 (permalink)  
Antiguo 31/01/2007, 18:00
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: FAQs JavaScript

P: ¿Cómo formateo un número con un separador de miles y uno de decimales? ¿Cómo vuelvo otra vez al formato original para operar?

R: He implementado unos cuantos métodos del objeto String para formatear un número con símbolos personalizados. format formatea y desFormat vuelve al estilo original.

Código:
<script language="Javascript">

String.prototype.reverse=function() { return this.split("").reverse().join(""); }
String.prototype.format=function(sepMil,sepDec) { 
	var partes=this.split(".");			//dividimos parte entera de decimal
	return partes[0].reverse().replace( /(\d{3})(?=\d)/g ,"$1"+sepMil).reverse() + (partes[1]?(sepDec + partes[1]):""); 
}
String.prototype.desFormat=function(sepMil,sepDec) {
	var reMil=new RegExp("\\"+sepMil,"g");		//para localizar los sepMil
	var reDec=new RegExp("\\"+sepDec);			//para localizar los sepDec
	return this.replace(reMil,"").replace(reDec,".").replace(/\s/g,"");
}

var numeros=[123.41, 1234.001, 123456.00, 123, 12345, 12345678901];


</script>

<table border="1">
	<script language="JavaScript">
	for(var a in numeros) {
		var n=numeros[a].toString();
		var fn=n.format(".","'");
		var dfn=fn.desFormat(".","'");
		document.writeln("<tr><td>" + n + "</td><td>" + fn + "</td><td>" + dfn + "</td></tr>");
	}
	</script>
</table>
Recordad que son métodos para String, ¡habremos de convetir los números a String con toString()!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.

Última edición por derkenuke; 31/01/2007 a las 18:01 Razón: La etiqueta [ p h p ] elimina las backslashes (\\)