Ver Mensaje Individual
Antiguo 31-ene-2007, 17:00   #249 (permalink)
derkenuke
Colaborador
derkenuke llegará a ser famoso muy prontoderkenuke llegará a ser famoso muy prontoderkenuke llegará a ser famoso muy pronto
 
Avatar de derkenuke
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.456
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()!
__________________
Inténtalo y búscalo siempre antes de preguntarlo

Última edición por derkenuke; 31-ene-2007 a las 17:01. Razón: La etiqueta [ p h p ] elimina las backslashes (\\)
derkenuke está desconectado   Responder Citando