Feld prüfen ob Zahlenwert - Problem Tausendertrennzeichen
Steve
- perl
0 Cheatah0 Philipp Hasenfratz0 lois
Hallo zusammen,
mit der Anweisung
if ($gFormCtrl{"ebit_2"} =~ /\D/) {....}
prüfe ich, ob das Feld eine Ganzzahl enthält. Das klappt wunderbar, aber wenn man Tausendertrennzeichen mit eingibt z.B. 1.000.000 geht dies nicht mehr. Hat jemand einen Vorschlag?
Danke schon mal,
Steve
Hi,
Hat jemand einen Vorschlag?
ja: Korrigiere die RegExp so, dass sie das entsprechende Format erkennt. Lies auch
perldoc perlfaq4
Cheatah
Halihallo Steve
prüfe ich, ob das Feld eine Ganzzahl enthält. Das klappt wunderbar, aber wenn man Tausendertrennzeichen mit eingibt z.B. 1.000.000 geht dies nicht mehr. Hat jemand einen Vorschlag?
Schmeiss die doch einfach raus ( =~ s/'|.|_//g ) oder mache eine Auswahl mit (..|..) um
die verschiedenen möglichen Zeichen aufzuzählen. Warum eigentlich \D der mached non-
Digits (\d für digit). Und erweitere deine RegExp auf den ganzen String, ansonsten gibt
der Match true, sobald der erste Digit gefunden wird (in deinem Beispiel ein Non-Digit).
Viele Grüsse
Philipp
hi
Hallo zusammen,
mit der Anweisung
if ($gFormCtrl{"ebit_2"} =~ /\D/) {....}
du köntest da mal probiern:
$tz = ","; # trennzeichen
($zahl =~ /^(\d*|\d{1,3}($tz\d{3})*)$/) ? print "$zahl ok\n" : die "wrong number $zahl";
lg, lois