NOTE!
- Accented characters will get replaced by their character equivalent when the
sortLocaleCompare
option istrue
. - In the javascript code block below you can see the default
$.tablesorter.characterEquivalents
table and an example of how to extend it to include other equivalents. - If you have a specific language requirement, please refer to the Language wiki pages to see if it is there. If not, please consider sharing the code or even just share the character equivalents themselves.
Demo
Account # |
First Name |
Last Name |
Age |
Location |
---|---|---|---|---|
a1a10 | AnderE | Parker | 28 | Béchar |
a1a2 | Ändere | Hood | 33 | Bebington |
A1a1 | Andére | Kent | 18 | Berlin |
A2b2 | CotÉ | Almighty | 45 | Beckum |
A1d2 | CÔte | Evans | 56 | Curaçao |
a2b11 | CÔtÉ | Clark | 44 | Béjaïa |
A2b1 | Çote | Presley | 24 | Bekkevoort |
A1b0 | Andéré | Carter | 40 | Bègles |
Javascript
$(function() {
// these default equivalents were obtained from a table of equivalents
// provided by sugar.js sorting alogrithms: http://sugarjs.com/sorting
/*
$.tablesorter.characterEquivalents = {
"a" : "\u00e1\u00e0\u00e2\u00e3\u00e4", // áàâãä
"A" : "\u00c1\u00c0\u00c2\u00c3\u00c4", // ÁÀÂÃÄ
"c" : "\u00e7", // ç
"C" : "\u00c7", // Ç
"e" : "\u00e9\u00e8\u00ea\u00eb", // éèêë
"E" : "\u00c9\u00c8\u00ca\u00cb", // ÉÈÊË
"i" : "\u00ed\u00ec\u0130\u00ee\u00ef", // íìIîï
"I" : "\u00cd\u00cc\u0130\u00ce\u00cf", // ÍÌIÎÏ
"o" : "\u00f3\u00f2\u00f4\u00f5\u00f6", // óòôõö
"O" : "\u00d3\u00d2\u00d4\u00d5\u00d6", // ÓÒÔÕÖ
"S" : "\u00df", // ß
"u" : "\u00fa\u00f9\u00fb\u00fc", // úùûü
"U" : "\u00da\u00d9\u00db\u00dc" // ÚÙÛÜ
};
*/
// modify the above defaults as follows
$.extend( $.tablesorter.characterEquivalents, {
"ae" : "\u00e6", // expanding characters æ Æ
"AE" : "\u00c6",
"oe" : "\u00f6\u0153", // œ Œ
"OE" : "\u00d6\u0152",
"d" : "\u00f0", // Eth (ð Ð)
"D" : "\u00d0",
"o" : "\u00f3\u00f2\u00f4\u00f5", // remove ö because it's in the oe now
"O" : "\u00d3\u00d2\u00d4\u00d5" // remove Ö because it's in the OE now
});
$("table").tablesorter({
theme : 'blue',
// Enable use of the characterEquivalents reference
sortLocaleCompare : true,
// if false, upper case sorts BEFORE lower case
ignoreCase : true
});
});
HTML
<table class="tablesorter">
<thead>
<tr>
<th>Account #</th>
<th>First Name</th>
<th>Last Name</th>
<th>Age</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>a1a10</td>
<td>AnderE</td>
<td>Parker</td>
<td>28</td>
<td>Béchar</td>
</tr>
<tr>
<td>a1a2</td>
<td>Ändere</td>
<td>Hood</td>
<td>33</td>
<td>Bebington</td>
</tr>
<tr>
<td>A1a1</td>
<td>Andére</td>
<td>Kent</td>
<td>18</td>
<td>Berlin</td>
</tr>
<tr>
<td>A2b2</td>
<td>CotÉ</td>
<td>Almighty</td>
<td>45</td>
<td>Beckum</td>
</tr>
<tr>
<td>A1d2</td>
<td>CÔte</td>
<td>Evans</td>
<td>56</td>
<td>Curaçao</td>
</tr>
<tr>
<td>a2b11</td>
<td>CÔtÉ</td>
<td>Clark</td>
<td>44</td>
<td>Béjaïa</td>
</tr>
<tr>
<td>A2b1</td>
<td>Çote</td>
<td>Presley</td>
<td>24</td>
<td>Bekkevoort</td>
</tr>
<tr>
<td>A1b0</td>
<td>Andéré</td>
<td>Carter</td>
<td>40</td>
<td>Bègles</td>
</tr>
</tbody>
</table>