Hledáte kvalitní a spolehlivý webhosting? Vyzkoušejte Český hosting.
Webhosting 1000 Kč/rok: 2GB, PHP 4 i 5, neom. subdomén a emailů, 10 databází

Regulární výraz pro datum

Datum může být zapsáno v mnoha tvarech jako DD/MM/RR, MM.DD.RRRR apod. nebo ve variantách, které povolují i jednoznakové označení dne či měsíce (tedy např. 1.1.2006 i 01.01.2006).

V okamžiku, kdy známe dílčí regulární výrazy pro den, měsíc a rok není již problém sestavit celý regulární výraz pro datum v požadovaném tvaru. Jak tedy vypadají regulární výrazy pro den, měsíc a rok?

  • Den
    • 0[1-9]|[12][0-9]|3[01] – dny 01-31
    • 0?[1-9]|[12][0-9]|3[01] – dny (0)1-31
    • 0[1-9]|[12][0-9]|30 – dny 01-30
    • 0[1-9]|1[0-9]|2[0-8] – dny 01-28
    • 0[1-9]|1[0-9]|2[0-9] – dny 01-29
  • Měsíc
    • 0[1-9]|1[0-2] – měsíce 01-12
    • 0?[1-9]|1[0-2] – měsíce (0)1-12
    • jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec – anglické zkratky pro měsíce
  • Rok
    • [0-9]{2} – rok 00-99
    • 20[0-9]{2} – rok 2000-2099
    • (19|20)[0-9]{2} – rok 1900-2099

Celý regulární výraz pak může vypadat například (kde za den, měsíc a rok doplňte výše uvedené dílčí regulární výrazy):

  • den\.měsíc\.rok
  • den\. měsíc\. rok
  • den/měsíc/rok
  • rok-měsíc-den

Celý regulární výraz tak může vypadat například:

(0?[1-9]|[12][0-9]|3[01])\. ?(0?[1-9]|1[0-2])\. ?20[0-9]{2}

Uvedenému výrazu (kde jsou mezery mezi dnem, měsícem a rokem nepovinné) tak odpovídají například řetězce 20. 1. 2006, 01. 2. 2099, 01. 09. 2000 apod.