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, ""); }
Gracias!!