1

W3仕様に基づいて日付が有効かどうかを確認するためにこれがあります:

/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/

次の形式が受け入れられます。

   Year:
      YYYY (eg 1997)
   Year and month:
      YYYY-MM (eg 1997-07)
   Complete date:
      YYYY-MM-DD (eg 1997-07-16)
   Complete date plus hours and minutes:
      YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
   Complete date plus hours, minutes and seconds:
      YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
   Complete date plus hours, minutes, seconds and a decimal fraction of a
second
      YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

2005-04-05一致することは決してなく、私の人生ではそれを理解することはできません. パターンによると、一致するはずです。

4

1 に答える 1

2

これを OR 型のアプローチで構築することを検討してから、必要に応じて後ろを見て単純化してください。

(\d{4})|(\d{4}-\d{2})|(\d{4}-\d{2}-\d{2})|(\d{4}-\d{2}-\d{2}T\d{2}(:\d{2}){1,2}[-+]\d{2}:\d{2})

また、これは日付の有効な数値をチェックするものではありません。これは、段階的にモジュール化すると非常に簡単に実行できます。日付の例は次のようになります。

\d{4}-(([0]{0,1}[\d])|(1[0-2]))-(([0-2]{0,1}[\d])|(3[01]))

これは 4 桁の年のみを想定しており、どの 4 桁の年でも問題ないことに注意してください。また、1 桁の月と日の番号として 01 と 1 の両方を使用できます。また、明確にするためにいくつかの追加の括弧を付けます。

于 2013-02-21T15:53:36.497 に答える