ichen: Fehlerhafte Regex

Beitrag lesen

Moin!

eregi("[0-9]{1,2}.[0-9]{1,2}.[0-9]{2,4}",$variable)

Hier wirst du es wohl so schreiben müssen:
[0-9]{1,2}.[0-9]{1,2}.([0-9]{2}|[0-9]{4})

Das zweite Problem (welches mir eben erst beim Testen auffiel) ist, dass
f0.00.0000
oder
00.00.00ab
auch als korrekt erkannt werden. eregi() untersucht scheinbar nur die Existenz IN einem String, nicht die Existenz ALS einziger Inhalt eines Strings. Wie verbiete ich vor und nach meinem Ausdruck weitere Zeichen?

Nutze hier lieber preg_mathch(). preg_match prüft die exitens ALS einen string, das fand ich heraus, als ich nur kurz folgendes kleines beispiel probierte:

  
<?php  
$s = "f0.00.0000";  
$reg = "/^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}$/";  
echo preg_match($reg,$s); //ausgabe: 0 (für FALSE)  
echo eregi("[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{2,4}",$s); //ausgabe: 1 (für TRUE)  
?>  

Außerdem sind die preg_*-funktionen schneller.

tschüssi
ichen

--
ie:{ fl:( br:> va:) ls:[ fo:| rl:( n4:# ss:) de:] js:| ch:{ mo:} zu:)