2011-02-04 56 views
0

我要排序日期看起來像這樣: 7月26日爲「7月26日」的日期格式jquery.tablesorter addParser

這是我加入一個解析器嘗試:

 var lMonthNames = {}; 
lMonthNames["Jan"] = "01"; 
lMonthNames["Feb"] = "02"; 
lMonthNames["Mar"] = "03"; 
lMonthNames["Apr"] = "04"; 
lMonthNames["May"] = "05"; 
lMonthNames["Jun"] = "06"; 
lMonthNames["Jul"] = "07"; 
lMonthNames["Aug"] = "08"; 
lMonthNames["Sep"] = "09"; 
lMonthNames["Oct"] = "10"; 
lMonthNames["Nov"] = "11"; 
lMonthNames["Dec"] = "12"; 

ts.addParser({ 
    id: 'monthDay', 
    is: function(s) { 
    return false; 
    }, 
    format: function(s) { 
    if (s.length > 0) { 
     var date = s.match(/^(\d{1,2})[ ](\w{3})[ ](\d{4})$/); 
     var m = lMonthNames[date[2]]; 
     var d = String(date[1]); 
     if (d.length == 1) {d = "0" + d;} 
     return '' + m + d; 
    } else { 
     return ''; 
    } 
    }, 
    type: 'numeric' 
}); 

但螢火蟲控制檯告訴我日期爲空 var m = lMonthNames [date [2]]; 你可以選擇爲什麼它沒有價值?

回答

1

由於正則表達式與您提供的數據不匹配。

你的匹配的東西是:26 Jul 2010而不是像26 Jul

要麼改變數據在表中,或改變正則表達式爲:

 var date = s.match(/^(\d{1,2})[ ](\w{3})$/); 
+0

大。我也不得不發現,我正在嘗試使用class =「{sorter:'dayMonth'}」來指定解析器,而沒有正確包含jquery.metadata.js。感謝您的解決方案:它的工作原理。 – 2011-02-06 21:59:43

相關問題