jquery tablesorter addParser for complex date

jquery tablesorter addParser for complex date

本文关键字:complex date for addParser tablesorter jquery      更新时间:2023-09-26

im 试图为 jquery 表排序器插件编写解析器,我真的需要帮忙......我得到了这个日期格式:日/月/年 hh:mm:ss a.m.|下午,我无法制作一个适当的正则表达式来使用 JavaScript .match 函数......,这是我得到的代码:

      $.tablesorter.addParser({
            id: 'DateParser',
            is: function(s) {
                    return false;
            },
            format: function(s) {
                    var date = s.match(/^('d{1,2})-('d{1,2})-('d{4}) :('d{1,2}):('d{1,2})$/)
                    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'
    });
    $("#tabletosort").tablesorter({
            headers: {
                    0: {
                            sorter: 'DateParser'
                    }
            }
    });

match() 调用的结果始终为空...提前非常感谢!

您当前的正则表达式以dd-mm-yyyy :mm:ss的形式匹配日期 - 您错过了小时,上午/下午,并使用了-而不是/,所以这就是为什么它永远不会匹配用dd/mm/yyyy hh:mm:ss a.m.|p.m.格式的日期。更正这些问题会为您提供如下所示的内容:

/^('d{1,2})'/('d{1,2})'/('d{4}) ('d{1,2}):('d'd):('d'd) (a'.m'.|p'.m'.)$/

。然后,您将测试最后一个子表达式以调整 AM 或 PM 的小时数。

(注意:我认为您不希望分钟和秒允许个位数,因此我已将该部分更改为需要两位数。