Snucky: regulärer Ausdruck: Muster oder komplett leer

Hi!

Ich möchte eine Benutzereingabe prüfen (ein mysql-konformes Datum YYYY-MM-DD

^(\d{4})\-(\d{2})\-(\d{2})$ erledigt das hervorragend.

-------------------------

Für einen weiteren Zweck wollte ich nun die Option in den Ausdruck miteinbinden, dass der String auch komplett LEER sein darf.

  
define ("REG_EXP", "/expression/");  
  
$string       = "2008-05-05";  
$empty_string = "";  
$dismatch     = "blabla";  
  
var_dump(preg_match(REG_EXP, $string)); // soll TRUE zurückgeben  
var_dump(preg_match(REG_EXP, $empty_string)); // soll TRUE zurückgeben  
var_dump(preg_match(REG_EXP, $dismatch)); // soll TRUE zurückgeben  

Für Vorschläge wäre ich sehr dankbar

  1. Entschuldigt! Der dritte Aufruf von preg_match soll natürlich FALSE zurücliefern!!!

  2. Hallo Snucky,

    Ich möchte eine Benutzereingabe prüfen (ein mysql-konformes Datum YYYY-MM-DD

    ^(\d{4})\-(\d{2})\-(\d{2})$ erledigt das hervorragend.

    Echt? 9999-99-99

    Ansonsten: ^((\d{4})-(\d{2})-(\d{2}))?$

    Gruß Uwe

    1. Naja, FAST hervorragend :-)

      DANKE ! für das freundliche Aushelfen!

      Verwende jetzt diesen Ausdruck
      ^((19|20|21)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))?$

      Schon ziemlich lang!