Steve: Feld prüfen ob Zahlenwert - Problem Tausendertrennzeichen

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

  1. Hi,

    Hat jemand einen Vorschlag?

    ja: Korrigiere die RegExp so, dass sie das entsprechende Format erkennt. Lies auch

    perldoc perlfaq4

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. 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

  3. 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