On Feb 2, 10:37 am, HenryRock <henryloke.myetr...@gmail.com> wrote:
> 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

Reply via email to