> I facing a problem in sorting :
>
> 1A,2A,3A,... 10A, 11A, 12A, 13A, 14A
> [ ... ]
> May I know is there have any plugin that can sort the sample data
> above to 1A until 14A?
Note that it's not hard to do this in Javascript, though:
var sorter = (function() {
var regex = /^(\d+)([a-z]+)$/i;
return function(o1, o2) {
var left = regex.exec("" + o1);
var right = regex.exec("" + o2);
if (left) left[1] = Number(left[1]);
if (right) right[1] = Number(right[1]);
if (!left) return (right ? 1 : (
"" + o1 < "" + o2 ? -1 : ("" + o1 > "" + o2 ? 1 : 0))
);
if (!right) return -1
if (left[1] < right[1]) {
return -1;
} else if (left[1] > right[1]) {
return 1;
} else {
if (left[2] < right[2]) {
return -1;
} else if (left[2] > right[2]) {
return 1;
} else {
return 0;
}
}
};
})();
var values = ["12A", "11B", "1A", "2C", "2B", "2A",
"1a", "4B", "13C", "12C", "3B", "3A"];
// 1A,1a,2A,2B,2C,3A,3B,4B,11B,12A,12C,13C
alert(values.sort(sorter));
Good luck,
-- Scott
No comments:
Post a Comment