我正在尝试使用 tablesorter jquery 库对时间/日期列进行排序。我在使用正则表达式并对其进行排序时遇到问题。有人可以帮忙吗?我的时间/日期格式是:
下午 2:06
周四 3 月 28 日
像这样。日期在单独的一行。我的正则表达式是这样的:
/$(\d{1,2}):(\d\d):(\d\d) (a\.m\.|p\.m\.) (\d{1,2})\/(\d{1,2})\/(\d{4})$/
我解析日期的功能是:
$.tablesorter.addParser({
id: 'DateParser',
is: function(s) {
return false;
},
format: function(s) {
var date = s.match(/$(\d{1,2}):(\d\d):(\d\d) (a\.m\.|p\.m\.) (\d{1,2})\/(\d{1,2})\/(\d{4})$/)
var d = date[1];
var m = date[2];
var y = date[3];
var H = date[4];
var M = date[5];
var S = date[6];
var MS = 0;
return new Date(y, m, d, H, M, S, MS).getTime();
},
type: 'numeric'
});
我得到的错误是:“Uncaught TypeError: Cannot read property '1' of null” 当用谷歌浏览器看到时。我认为最好的方法是使用正则表达式。但如果我弄错了,我愿意换一种更好的方式。有任何想法吗?