regular expression:
^( ( (0?[1-9]|1[0-9]|2[0-8]) \.(0?[1-9]|1[012]) | //svi mjeseci do 28 dana (29|30) \.(0?[13456789]|1[012])| //mjeseci sa 29 i 30 danom 31 \.(0?[13578]|1[02]) //mjeseci sa 31 danom ) \.(20|19)[0-9]{2}| //sve godine 19xx, 20xx 29\.0?2\.(?!1900)(20|19)([02468][048]|[13579][26]) //29.februari prestupnih godina (sve djelj.sa 4 osim 1900) )$
minified:
input test:
result: