Я использую jquery tablesorter, и я пытаюсь отсортировать столбец со значениями, подобными этому:
$ 100 000
$ 38000
(4000 $)
$ 2000
Данные в () являются отрицательными числами. При использовании функции сортировки по умолчанию она не распознает (4000 долларов) как отрицательное число, поэтому я пытаюсь создать пользовательскую функцию для ее обработки.
Решение ниже - то, что я придумала, и оно отлично работает. Но мне интересно, есть ли лучшее решение? Я новичок в jquery и просто ищу понимание.
$(document).ready(function()
{
$.tablesorter.addParser({
// set a unique id
id: 'currency-column',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
s = s.replace(/$/g,"");
s = s.replace(/\(/g,"-");
s = s.replace(/\)/g,"");
return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.-]/g),""));
},
type: 'numeric'
});
$("#myTable").tablesorter({
headers: {
3: { sorter:'currency-column' },
4: { sorter:'currency-column' },
5: { sorter:'currency-column' },
6: { sorter:'currency-column' },
7: { sorter: false },
10: { sorter:'currency-column' }
}
});
}
);
Опять же, он делает то, что требуется, и я доволен результатами (и, возможно, я должен просто оставить это там ...), но если есть лучшее решение, я бы хотел услышать его.
Спасибо