-2

http://regexlib.com/REDetails.aspx?regexp_id=233で適切な正規表現を見つけました。簡単に参照すると、

^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$

私は正規表現について何も知らないので、これをデバッグする方法がまったくわかりません。このjQueryプラグインhttp://trentrichardson.com/examples/timepicker/から日付/時刻文字列を取得しています。これは次の形式です:

"09/02/2012 14:51" //Fail

ただし、上記は失敗した文字列の例ですが、私には問題ないようです。現在の時刻を取得すると、次のようになります。

"12/22/2012 00:01" //Pass

この正規表現に問題がある人はいますか?

4

1 に答える 1

2

その正規表現は、午前/午後形式の時間のみを受け入れ0ます12

((\s([0]\d|[1][0-2])(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?)
     ^-------------
     This block represents the hours, and its range is 0-12

0 から 23 までの 1 日の時間を考慮するには、時間の部分に次を追加します。

(0\d|1[0-9]|2[0-3])

最終的な正規表現を生成する:

/^([0]\d|[1][0-2])\/([0-2]\d|[3][0-1])\/([2][01]|[1][6-9])\d{2}(\s(([0]\d|[1][0-2])|(0\d|1[0-9]|2[0-3]))(\:[0-5]\d){1,2})*\s*([aApP][mM]{0,2})?$
于 2012-09-02T18:59:52.580 に答える