jQueryプラグインのtablesorterでうまくソートされない対処

文字列(数字 + 半角英字)をtablesorterでソートしようとした際に、

  1. 数字
  2. 英字

の順に、、、

例)

  • 012abc
  • 013abc
  • 123abc

の順で並んでほしいが、

  • 012abc
  • 123abc
  • 013abc

の順で並んでしまう

ソートの方法を明示的に記載することで解決した


$("table").tablesorter({
 headers: {
  0: { sorter: '任意のパーサIDなど' },
  1: { sorter: '任意のパーサIDなど' },
  2: { sorter: '任意のパーサIDなど' }
 }, textSorter: {
  2: $.tablesorter.sortText, // 正しくソートしてほしい項目の列番号を記載(ゼロスタート)
 }, 
});

textSorterにソートしてほしい項目の列番号をキーにして、$.tablesorter.sortTextと記載する

考察だけれども、本ライブラリのソートの方法で、デフォルトでは「sortNatural」といったソート方法を優先的にとっているからっぽい

これは数値のみを抜粋して評価・ソートしている感じだった

「sortText」とすることで、文字列としての評価をしてくれるのではないかなあと思った