This is SUPER quick and dirty, but appears to be working (btw: rather than hacking up the tablesorter.js file for sort rules, it's 1000x better to add a parser.... that we if he releases a new version, you don't have to re-hack up the code)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Untitled Page</title> <script type="text/javascript" src="http://tablesorter.com/jquery- latest.js"></script> <script type="text/javascript" src="http://tablesorter.com/ jquery.tablesorter.js"></script> <script type="text/javascript"> $(document).ready(function() { var months = {}; months["JAN"] = "01"; months["FEB"] = "02"; months["MAR"] = "03"; months["APR"] = "04"; months["MAY"] = "05"; months["JUN"] = "06"; months["JUL"] = "07"; months["AUG"] = "08"; months["SEP"] = "09"; months["OCT"] = "10"; months["NOV"] = "11"; months["DEC"] = "12"; $.tablesorter.addParser({ id: 'AlphaNum', is: function(s) { return false; }, format: function(s) { s = '' + s; s = s.toUpperCase(); if (isNaN(s)) { return 'ZZ' + s; } else { return 'AA' + PadString(s, '00000000'); } }, type: 'text' }); $.tablesorter.addParser({ id: 'DD-MMM-YY', is: function(s) { return false; }, format: function(s) { s = '' + s; //Make sure it's a string var hit = s.match(/(\d{2})-([A-Za-z]{3})-(\d{2})/); if (hit && hit.length == 4) { return hit[3] + months[hit[2].toUpperCase()] + hit[1]; } else { return s; } }, type: 'text' }); $("#myTable").tablesorter({ headers: { 0: { sorter: 'AlphaNum' }, 6: { sorter: 'DD-MMM-YY' } } }); }); function PadString(str, pad) { if (pad == undefined) { pad = "00"; } str = "" + pad + str; return Right(str, pad.length); } function Right(str, n) { if (n <= 0) { return ''; } else if (n > String(str).length) { return str; } else { var iLen = String(str).length; return String(str).substring(iLen, iLen - n); } } </script> <style type="text/css"> body { font-size: 10px; font-family: Verdana; } #myTable { } #myTable th { background-color: #c0c0c0; } </style> </head> <body> <div>Tablesorter custom Sort: </div> <div> <table id="myTable"> <thead> <tr> <th>Column A</th> <th>Last Name</th> <th>First Name</th> <th>Email</th> <th>Due</th> <th>Web Site</th> <th>Date</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Smith</td> <td>John</td> <td>[EMAIL PROTECTED]</td> <td>$50.00</td> <td>http://www.jsmith.com</td> <td>04-SEP-08</td> </tr> <tr> <td>15</td> <td>Bach</td> <td>Frank</td> <td>[EMAIL PROTECTED]</td> <td>$50.00</td> <td>http://www.frank.com</td> <td>09-JUN-08</td> </tr> <tr> <td>8</td> <td>Doe</td> <td>Jason</td> <td>[EMAIL PROTECTED]</td> <td>$100.00</td> <td>http://www.jdoe.com</td> <td>22-OCT-07</td> </tr> <tr> <td>Smith</td> <td>Conway</td> <td>Tim</td> <td>[EMAIL PROTECTED]</td> <td>$50.00</td> <td>http://www.timconway.com</td> <td>01-APR-08</td> </tr> <tr> <td>Youk</td> <td>Jones</td> <td>Bob</td> <td>[EMAIL PROTECTED]</td> <td>$47.00</td> <td>http://www.espn.com</td> <td>11-MAR-07</td> </tr> </tbody> </table> </div> </body> </html>