Tablesorter货币清洁

时间:2012-07-06 05:39:29

标签: javascript jquery html-table tablesorter

我花了很多时间来讨论arround tablesorter,让它与以下值一起使用:“R $ 3.400,95” 不用说,我悲惨地失败了。我确实尝试添加headers: {2: {sorter:"currency"}}属性,但它根本就停止了工作。 任何人都知道如何解决这个问题?

Javascript:

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'thousands',
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) {
        // format your data for normalization 
        return s.replace('$','').replace(/,/g,'');
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 


$(function() {
// call the tablesorter plugin
$("#ver_saida").tablesorter({
    decimal: ",",
    dateFormat: 'uk',
    headers:{2:{sorter:'thousands'}}
});

});

其他标头工作正常,但最后一个属性使该特定标头停止工作。

这是HTML表格:

<table id="ver_saida" class="tablesorter">
    <thead>
        <tr>
            <th class="sorter-shortDate dateFormat-ddmmyyyy tablesorter-header">Data<span>n</span></th>
            <th>Descrição<span>n</span></th>
            <th>Valor<span>n</span></th>
            <th>Situação<span style="margin-left:2em;">n</span></th>
        </tr>
    </thead>
    <tr class="pago">
        <td class="datout">17/05/2012</td>
        <td class="desout">atraso teste</td>
        <td class="valout"> R$45,46</td>
        <td class="situacao">pago</td>
        <td class="delCel"><button class="deletar" href="financeiro_deletar.php?id=36">Deletar</button></td>
    </tr>
    <tr class="npago late">
        <td class="datout">13/06/2012</td>
        <td class="desout">IPVA macerati</td>
        <td class="valout"> R$5.565,62</td>
        <td class="situacao">não pago</td>
        <td class="delCel"><button class="deletar" href="financeiro_deletar.php?id=38">Deletar</button></td>
    </tr>
<table>

我做了一个实验:如果我从单元格html中取出“R $”它没有问题,但问题是,我不知道如何让它忽略“R $”并仍然把它放在桌子上(为了便于阅读)。

1 个答案:

答案 0 :(得分:2)

使用以下方法修改'format'方法:

format: function(s) {
        // format your data for normalization 
        return parseFloat(s.replace(/[^0-9,]/g, '').replace(',', '.'), 10);
    },