0

Javascriptでテーブルソーターを使用してテーブルをソートしたい。ただし、列に英数字データがある場合、正しく並べ替えられません。

例えば:

order1023
order1145
quote786
invoice1253
quote1010

私はヘッダーを与えてみました:{ 0: {sorter: 'text'}}, textExtraction: "complex"} しかし、私は次のように結果を得ています:

quote1010
order1023
order1145
invoice1253
quote786

私は結果が欲しい

invoice1253
order1023
order1145
quote786
quote1010
4

1 に答える 1

1

次のようにパーサーを追加する必要があります。

$.tablesorter.addParser({
  id: 'alphanum',
  is: function(s) {
    return false;
  },
  format: function(s) {
    var str = s.replace(/(\d{1,2})/g, function(a){
        return pad(a);
    });

    return str;
  },
  type: 'text'
});

function pad(num ){
  var s = '00000' + num;
  return s.substr(s.length-5);
}    

初期化するとき、

$(function() { 
    $("table").tablesorter({ 
        headers: { 
            6: { // column number
                sorter:'alphanum' 
            } 
        } 
    }); 
}); 
于 2013-08-29T11:50:40.243 に答える