2

我正在尝试为 jquery tablesorter 插件编写解析器,我真的需要帮助... 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() 调用的结果始终为空...提前非常感谢!

4

1 回答 1

2

您当前的正则表达式正在匹配表单中的日期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\.)$/

...然后您将测试最后一个子表达式以调整上午或下午的时间。

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

于 2012-07-04T22:09:27.210 回答