Marc Nilius: Regulaerer Ausdruck fuer Preise

Hallo!

Ich versuche in PHP mit regular expressions eine Preiseingabe zu validieren.

Ich moechte ueberpruefen, ob eine Eingabe folgende Bedingungen erfuellt:

  • ein bis 4 Ziffern vor einem Punkt gefolgt von 1 bis 2 Ziffern nach dem Punkt oder
  • ein bis 4 Ziffern (kein Punkt, keine Nachkommastellen)

Leider habe ich mich mit regular expressions noch nicht so beschaftigt, habe hier stundenlang rumprobiert und nix funktioniert. ;-)

Irgendwelche Denkanstoesse fuer mich? ;-)

Vielen Dank und Gruesse,

Marc

  1. Moin Moin !

    • ein bis 4 Ziffern vor einem Punkt gefolgt von 1 bis 2 Ziffern nach dem Punkt oder
    • ein bis 4 Ziffern (kein Punkt, keine Nachkommastellen)

    Leider habe ich mich mit regular expressions noch nicht so beschaftigt, habe hier stundenlang rumprobiert und nix funktioniert. ;-)

    Code und Ergebnis?

    Irgendwelche Denkanstoesse fuer mich? ;-)

    RTFM: http://www.php.net/

    Übersetze deine Bedingung in zwei RE. Du hast es schon ganz gut formuliert, es ist quasi schon eine RE, nur eben nicht in einer für PHP verständlichen Form.

    Es geht auch mit einer RE:

    eine bis vier Ziffern, optional gefolgt von einem Punkt und ein bis zwei Ziffern.

    Oder dichter an PHP:

    eine bis vier Wiederholungen der Zeichenklasse Ziffer, optional gefolgt von folgender Gruppe - ein Punkt, gefolgt von ein bis zwei Wiederholungen der Zeichenklasse Ziffer.

    Und um ganz präziese zu sein:

    String-Anfang, gefolgt von einer bis vier Wiederholungen der Zeichenklasse Ziffer, optional gefolgt von folgender Gruppe - ein Punkt, gefolgt von ein bis zwei Wiederholungen der Zeichenklasse Ziffer, immer gefolgt vom String-Ende.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"