Вам нужно будет добавить парсер, чтобы заменить имена своими значение (demo):
// see big list here: http://www.unc.edu/~rowlett/units/large.html
var numbers = {
'zero' : 0,
'hundred' : 100,
'thousand' : 1e3,
'million' : 1e6,
'billion' : 1e9,
'trillion' : 1e12,
'quadrillion' : 1e15,
'quintillion' : 1e18,
'sextillion' : 1e21,
'septillion' : 1e24,
'octillion' : 1e27,
'nonillion' : 1e30,
'decillion' : 1e33
};
$.tablesorter.addParser({
id: "namedNumbers",
is: function() {
return false;
},
format: function (s, table) {
var v,
result = 1,
arry = (s || '').split(/[\-\s]+/),
len = arry.length;
while (len) {
v = $.tablesorter.formatFloat((arry[--len] || '').toLowerCase(), table);
if (numbers.hasOwnProperty(v)) {
result *= numbers[v];
} else {
result *= parseFloat(v);
}
}
return result !== 1 ? result : s;
},
type: "numeric"
});
$(function() {
$('table').tablesorter({
theme: 'blue',
headers : {
1 : { sorter : 'namedNumbers' }
}
});
});
Если TableSorter является конкретный плагин или библиотеку, вы должны быть более конкретными, и, вероятно, сделать ссылку на документацию. Кроме того, задайте вопрос. Если вы не зададите вопрос, вы не можете получить ответ. –
Другими словами, tablesorter работает правильно, это грязные данные. –
Основываясь на том, что вы сказали, вероятно, просто используется * parseFloat *. Сначала вам нужна функция, которая преобразует «человеческие» цифры в реальные числа (например, от 6,3 до 6300 000), тогда вы можете отсортировать их по своему усмотрению. – RobG