AlexBausW: Regulärer Ausdruck zum Überprüfen von Preisfeldern

Beitrag lesen

Hallo Thorsten,

if ($preis =~ /[0-9,]/) ...
probiert, aber irgendwie funktionierts nicht.

damit überprüfst Du nur, ob eine Zahl oder ein Komma vorkommt.

Du kannst nun mehrere Methoden verwenden, um die Eingabe zu überprüfen. Entweder du Überprüfst, ob die die Eingabe dem geforderten Format entspricht, oder ob unerlaubte bzw. nur erlaubte Zeichen vorkommen,....
Ich würde folgendermaßen vorgehen:
Wie schaut ein Preis aus: 123,45 / 123,4 oder nur 123. Danach bastel ich mir dann die RegExp:
   if ($preis =~ /^\d+(,\d{1,2})$/) {...}
                  ^..................Anfang der Variablen
                   ^.................mindestens eine Ziffer
                       ^.............Komma mit ...
                         ^...........einer oder zwei Ziffern...
                               ^.....oder keine Nachkommastellen
                                 ^...Ende der Variablen (vor Newline)  
Im übrigen bietet es sich immer an, mit einer RegExp das Eingabeformat zu überprüfen (sofern es eindeutig vorgegeben ist), und nicht auf einzelne Zeichen zu testen, da dies wesentlich genauer ist.

Gruß AlexBausW