/ / Regulárny formát validácie dátového času Javascript [dd-mm-rrrr hh: mm] - javascript, regex

Javascript datetime formátovanie regex [dd-mm-rrrr hh: mm] - javascript, regex

Snažím sa vytvoriť regulárny výraz pre validáciu dátetime vo formáte dd-mm-rrrr hh: mm.

Čo som vyskúšal

/^(([0-2]?[0-9]|3[0-1])[/-.]([0]?[1-9]|1[0-2])[/-.][1-2]d{3}) (20|21|22|23|[0-1]?d{1}):([0-5]?d{1})$/

Ale nefunguje to. Dostávam neplatný formát.

odpovede:

0 pre odpoveď č. 1

Ako už povedali iní, regulárny výraz je zlý spôsob, ako skontrolovať, či máte platný dátum.

Ak chcete regulárny formát, vyhovuje vášmu formátu:

(0[1-9]|[12][0-9]|3[01])[-](0[1-9]|1[012])[-](19|20)[0-9]{2} (2[0-3]|[0-1][0-9]):[0-5][0-9]

A odmietne väčšinu neplatných dátumov a časov ... ale akceptuje také dátumy ako 29-02-2013.

Nech už je jazyk akýkoľvek, je oveľa lepšie pokúsiť sa vytvoriť dátum pomocou vstupného reťazca - ak zlyhá, nemáte platný dátum.

Mimochodom, v zátvorkách [-] nie sú potrebné, ale pre taký regulárny výraz to nie jezlý nápad zaradiť spojovník do triedy znakov pre prípad, že by niekto neskôr chcel pridať ďalšie oddeľovače. Váš počiatočný regex naznačuje, že ste to možno chceli urobiť.