2

jquery tablesorterプラグインのパーサーを作成しようとしていますが、これを実際に使用する必要があります...次の日付形式を取得しました:dd / mm / yyyy hh:mm:ss am |pm使用する適切な正規表現を作成できませんjavascript .match function ...、これが私が得たコードです:

      $.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()呼び出しの結果は常にnullです...事前に感謝します!

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\.)$/

...次に、最後の部分式をテストして、午前または午後の時間を調整します。

(注:分と秒で1桁を使用する必要はないと思うので、その部分を2桁にするように変更しました。)

于 2012-07-04T22:09:27.210 に答える