79824400

Date: 2025-11-19 11:46:45
Score: 2
Natty:
Report link

I have similar problem tableSorter can't sort non US currency, even I have set usNumberFormat: false

$("#table1").tablesorter({
  usNumberFormat: false,
  headers: {
    2:{
       sorter: "digit"
    }
  }
})
th{cursor: pointer;}
th,td{min-width: 150px;border: 1px solid #eee;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.32.0/js/jquery.tablesorter.min.js"></script>

<table id="table1" class="tablesorter">
    <thead>
        <tr>
            <th>Name</th>
            <th class="tablesorter-digits">Total</th>
        </tr>
     </thead>
     <tbody>
         <tr><td>Name_1</td><td>Rp 32.333</td></tr>
         <tr><td>Name_2</td><td>Rp 12.666</td></tr>
         <tr><td>Name_3</td><td>Rp 11.666.654</td></tr>
         <tr><td>name_4</td><td>Rp 14.655.444 (largest)</td></tr>
         <tr><td>Name_5</td><td>Rp 7.225</td></tr>
      </tbody>
</table>

The solution is adding custom addParser

$.tablesorter.addParser({
    id: 'sortRupiah',
    is: function(s) {
        return false; 
    },
    format: function(s) {
        // replace any non-digit
        var number = parseFloat(s.replace(/\D+/g, ''));
        return isNaN(number) ? s : number; 
    },
    type: 'numeric' 
});

$("#table1").tablesorter({
  usNumberFormat: false,
  headers: {
    1:{
       sorter: "sortRupiah"
    }
  }
})
th{cursor: pointer;}
th,td{min-width: 150px;border: 1px solid #eee;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.32.0/js/jquery.tablesorter.min.js"></script>
<table id="table1" class="tablesorter">
    <thead>
        <tr>
            <th>Name</th>
            <th class="tablesorter-digits">Total</th>
        </tr>
     </thead>
     <tbody>
         <tr><td>Name_1</td><td>Rp 32.333</td></tr>
         <tr><td>Name_2</td><td>Rp 12.666</td></tr>
         <tr><td>Name_3</td><td>Rp 11.666.654</td></tr>
         <tr><td>name_4</td><td>Rp 14.655.444 (largest)</td></tr>
         <tr><td>Name_5</td><td>Rp 7.225</td></tr>
      </tbody>
</table>

Reasons:
  • Blacklisted phrase (1): I have similar
  • Whitelisted phrase (-1): solution is
  • RegEx Blacklisted phrase (2): even I have
  • Long answer (-1):
  • Has code block (-0.5):
  • Me too answer (2.5): I have similar problem
  • High reputation (-1):
Posted by: uingtea