Frage Regex Ganzzahl / Kommazahl

  • Hallo,

    ich komme gerade bei einem simplen Regex in PHP nicht weiter, leider haben mir div. Tutorials bzw. Manuals nicht helfen können. Ich sehe den Fehler einfach nicht.

    Ich habe eine Eingabe wo Ganzzahlen oder Kommazahl erlaubt ist.
    Wenn Kommazahl soll das Trennzeichen ein Punkt sein.

    Folgendes habe ich in PHP:

    $value = 49.4;

    preg_match("/^[0-9]+\.{,1}[0-9]*$/",$value)


    Gibt mir einen Fehler...also keinen Treffer.

    Laut meinem Verständnis prüfe ich aber ob der Value
    mit 1 bis unendlich Ziffern anfängt 0 bis 1 Punkt hat
    und ob danach 0 bis unendlich Ziffern folgen.

    49,4 müsste deshalb doch eigentlich passen.

    Noch besser wäre es natürlich wenn nur ein zweites [0-9] möglich
    ist wenn auch ein Punkt vorhanden ist, aber ich komm leider nicht weiter.

    :/
    Wäre nett wenn mir mal jemand helfen könnte :)

  • PHP hat für sowas doch schon Funktionen: is_numeric, is_int, is_double, is_float

  • Hi,

    ja ich würde das in diesem Fall trotzdem gern über Regex lösen da sich die Eingabebeschränkung evtl. noch mal ändern, ...mit Regex hab ich dann kein Problem das anzupassen wenn der Grundaufbau erstmal steht.

  • Dann mach einfach eine Funktion, die kannst im nachhinein auch ändern


    mfg

  • Die 0 fehlte...

    Code
    ^[0-9]+\.{0,1}[0-9]*$

    Der Regex ist aber schwachsinn, weil bei diesem Zahlen wie 19. durchkämen und wer will sowas schon.
    Du solltest wirklich Funktionen dafür benutzen.

    Gruß crAzywuLf :D

  • Hi,

    ja ich würde das in diesem Fall trotzdem gern über Regex lösen da sich die Eingabebeschränkung evtl. noch mal ändern, ...mit Regex hab ich dann kein Problem das anzupassen wenn der Grundaufbau erstmal steht.


    Es ist zwar in diesem Fall wohl wirklich sinnvoller, über Funktionen zu lösen, aber mit


    sollte es klappen. Link zum Beispiel oben RegEx Tester


    EDIT:
    Obige Version, um die aus einem Volltext zu bekommen. Um nur die Zahl zu testen, dies verwenden:

    Allerdings wirklich sinnlos, wenn es dafür eine einfache Funktion gibt!

    wert.TeeeX.de
    Wie gut ist die technische Umsetztung deiner Website wirklich?
    Teste es!

    Einmal editiert, zuletzt von -Bambino- (30. März 2010 um 15:37)