Парсер jQuery TableSorter для европейцев - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть таблица с такими числами: 12000.34, которые отлично сортируются с параметрами по умолчанию.

Я итальянец, поэтому я хочу, чтобы это число форматировалось так: 12.000,34 (запятая для десятичных дробей,точка для тысяч).

Я форматирую так, но мои таблицы перестают правильно сортироваться.

Поэтому я создаю свой собственный анализатор:

jQuery.tablesorter.addParser({
            id: "commaDigit",
            is: function(s) {
                return /^[0-9]?[0-9,\.]*$/.test(s);
            },
            format: function(s) {
                s = s.replace("%","")
                     .replace(/€/g, '')
                     .replace(/^\s+|\s+$/g,"")
                     .replace(/,/g, "")
                return jQuery.tablesorter.formatFloat(s);
            },
            type: "numeric"
        });     

Он работает счисла типа 12000,34, но не с 12.000,34 Что мне делать с этой точкой ??

Кроме того, я хотел бы также отсортировать "целые числа", такие как "-1,23" "0, 00 "" +3,68 "

Как мне манипулировать строкой" s "для достижения этого?

Ответы [ 2 ]

1 голос
/ 05 апреля 2015

для номеров лагера вам нужно заменить все '.'вот так: и я хочу принимать только числа длиной не менее 1 цифры (поэтому не должно быть пустых строк) с хотя бы '.'или ',' в нем

jQuery.tablesorter.addParser({
        id: "commaDigit",
        is: function(s) {
            return /^[0-9]+([,\.][0-9]+)+$/.test(s);
        },
        format: function(s) {
            s = s.replace("%","")
                 .replace(/€/g, '')
                 .replace(/^\s+|\s+$/g,"")
                 .replace(",", "")
                 .replace(/\./g, "")
            return jQuery.tablesorter.formatFloat(s);
        },
        type: "numeric"
    });     
1 голос
/ 09 сентября 2011
jQuery.tablesorter.addParser({
            id: "commaDigit",
            is: function(s) {
                return /^[0-9]?[0-9,\.]*$/.test(s);
            },
            format: function(s) {
                s = s.replace("%","")
                     .replace(/€/g, '')
                     .replace(/^\s+|\s+$/g,"")
                     .replace(",", "")
                     .replace(".", "")
                return jQuery.tablesorter.formatFloat(s);
            },
            type: "numeric"
        });     

Это удаляет.из значения столбца

...