Index: wikibits.js =================================================================== --- wikibits.js (revision 40285) +++ wikibits.js (working copy) @@ -607,17 +607,18 @@ } } - sortfn = ts_sort_caseinsensitive; if (itm.match(/^\d\d[\/. -][a-zA-Z]{3}[\/. -]\d\d\d\d$/)) - sortfn = ts_sort_date; - if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) - sortfn = ts_sort_date; - if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) - sortfn = ts_sort_date; - if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro - sortfn = ts_sort_currency; - if (itm.match(/^[\d.,]+\%?$/)) - sortfn = ts_sort_numeric; + var sortfn = ts_sort_date; + else if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d\d\d$/)) + var sortfn = ts_sort_date; + else if (itm.match(/^\d\d[\/.-]\d\d[\/.-]\d\d$/)) + var sortfn = ts_sort_date; + else if (itm.match(/^[\u00a3$\u20ac]/)) // pound dollar euro + var sortfn = ts_sort_currency; + else if (itm.match(/^[+-]?(?:\d{1,3}(?:\,\d{3})*)*\.?\d*(?:[eE][+-]?\d+(?:\,\d{3})*)?[%\u00b0\u00bc\u00bd\u00be]?$/) && !itm.match(/^[eE]/)) + var sortfn = ts_sort_numeric; + else + var sortfn = ts_sort_caseinsensitive; var reverse = (span.getAttribute("sortdir") == 'down'); @@ -707,8 +708,9 @@ function ts_parseFloat(num) { if (!num) return 0; - num = parseFloat(num.replace(/,/g, "")); - return (isNaN(num) ? 0 : num); + var div = /%$/.test(num) ? 100 : 1; + num = parseFloat(num.replace(/\u00bc/g, '.25').replace(/\u00bd/g, '.5').replace(/\u00be/g, '.75').replace(/\u00b0/g, '').replace(/%/g, '').replace(/,/g, '')); + return (isNaN(num) ? 0 : (num/div)); } function ts_sort_date(a,b) {