Foros del Web » Programando para Internet » Javascript »

Problemas ordenación cantidades

Estas en el tema de Problemas ordenación cantidades en el foro de Javascript en Foros del Web. Muy buenas cracks, llevo varios días probando y nada. Tengo un problema con la ordenación de cantidades. Me bajé un script muy sencillo para la ...
  #1 (permalink)  
Antiguo 13/03/2011, 12:03
 
Fecha de Ingreso: agosto-2009
Mensajes: 216
Antigüedad: 14 años, 8 meses
Puntos: 3
Problemas ordenación cantidades

Muy buenas cracks, llevo varios días probando y nada.

Tengo un problema con la ordenación de cantidades. Me bajé un script muy sencillo para la ordenación de tablas pero en Inglés, lo que significa que para ellos el punto (.) de los millares es una coma (,) y por tanto no me ordena bien las cantidades.

He probado intentando limpiar el número antes de tratarlo pero no lo consigo...Lo he intentado con replace() pero no hay manera. No sé si es que no lo pongo en el sitio correcto o es que hay algo que hago mal. Os dejo la parte del código a ver si alguien me puede echar una mano:

Código HTML:
.
.
.
	if (itm.match(/^-?[Ł$€Ű˘´]\d/)) sortfn = ts_sort_numeric;
	if (itm.match(/^-?(\d+[.\,]?)+(E[-+][\d]+)?%?$/)) sortfn = ts_sort_numeric;
.
.
.
function ts_sort_numeric(a,b) {
	
	var aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
	aa = clean_num(aa);
	
	var bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
	bb = clean_num(bb);
	return compare_numeric(aa,bb);
}
function compare_numeric(a,b) {

	var a = parseFloat(a);
	a = (isNaN(a) ? 0 : a);

	var b = parseFloat(b);
	b = (isNaN(b) ? 0 : b);
	return a - b;
}
function clean_num(str) {

	
	str = str.replace(new RegExp(/[^-?0-9.]/g),"");
	return str;
}
function trim(s) {
	return s.replace(/^\s+|\s+$/g, "");
}
He probado con tuVariable = tuVariable.replace(/\./g,'') dentro de ts_sort_numeric, compare_numeric y clean_num, pero no hay manera...alguna idea??

Gracias!!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.