bestimmte eingabe erzwingen !?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • bestimmte eingabe erzwingen !?

    hai
    und zwar wuerde ich gerne erzwingen das eine eigegebene nummer immer wie folgt ausssieht:

    12.43. oder 88.88.

    jetzt hab ich nur die idee gehabt die string-laenge zu ueberpruefen, damit erzwinge ich aber ja noch nicht die punkte.
    wie kann ich soetwas pruefen, das die nummer immer ##.##. ist???
    Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
    aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

  • #2
    mit regulären ausdrücken ...

    \d steht für eine ziffer, den punkt mußt du mit \ maskieren, sonst gilt er als metazeichen, also \. ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      sorry ich weiss nicht ob ich mich flasch ausgedrueckt hab oder ob es an purer dummheit meinerseits liegt und ich einfach deshalb KEINEN plan hab wovon du redest. ich moechte nur das ueberprueft wird ob der string aus zwei zahlen punkt zwei zahlen punkt besteht.
      wenn dies nicht der fall sein sollte, dann geb ich eine fehlermeldung aus.
      Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
      aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

      Kommentar


      • #4
        Hi,

        Wirf doch einen Blick ins Handbuch und schau was es dort unter regular expressions gibt...

        Gruß Thomas

        Kommentar


        • #5
          z.B. das hier ... http://uk2.php.net/manual/de/function.preg-match.php

          Kommentar


          • #6
            jo ich denk mal das ihr an sowas gedacht hattet oder?
            Code:
            $treffer=preg_match(   "/(^[0-9]{2})+.([0-9]{2})+./",$string);
            Das liefert dann bei richtigem ergebniss 1 und sonst 0 ...
            ist das ansich so in ordnung ?
            Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
            aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

            Kommentar


            • #7
              1. Als Anwender hass ich es wenn mich ein Programmierer zu etwas "zwingen" will.

              Wenn ich, wie es zumindest in Deutschland üblich ist, eine Dezimalzahl durch Komma trenne, dann sollte die Formularprüfung die Daten so ändern, daß sie weiterverwendet werden können.

              Ein genervter Kunde, der einen Bestellvorgang abbricht weil er keine Lust hat ein zweites mal Daten einzugeben, ist ein verlorener Kunde.

              2. Die Länge der Eingabe kannst Du mit HTML im Input-Tag festlegen. Die Länge muß also nicht abgefragt werden.

              3. Ein Komma läßt sich leicht mit str_replace durch einen Punkt ersetzen.

              4. Es gibt verschiedene Möglichkeiten, die eingegebenen Daten zu prüfen:
              Du kannst jedes Zeichen einzeln prüfen (if ... mit char oder mit anderen Stringfunktionen) oder Du kannst einen Regulären Ausdruck verwenden.

              4. Dieser Regex ersetzt eventuelle Kommas wenn die Eingabe im Format 00.00, 0.00, 00,00, 0,00, 00.0 oder 00,0 erfolgte. Kann man noch erweitern, wenn man prüfen will ob nur eine oder zwei Ziffern eingegeben wurden.

              PHP-Code:
              $ergebnis preg_replace ('/(\\d\\d|\\d)(,|\\.)(\\d\\d|\\d)/''\\1.\\3'$text

              Kommentar


              • #8
                hahaha

                ja ich kann verstehen was du meinst.
                aber es handelt sich hier nicht um kundeneingaben, sodern um eine datenbank die von einem meiner mitarbeiter verwendet wird.
                das umwandeln von punkten in kommas ist hier nicht von noeten - denn ich befinde mich nicht in deutschland oder europa =))
                du hast natuerlich recht, wenn es sich um einen kunden handeln wuerde, dann duerfte man natuerlich auf eine falsche eingabe nicht mit einem abbruch reagieren.
                in diesem fall ist die eingabe aber nicht besoders lang und der mitarbeiter darf fuer schreibfehler in diesem fall ausnahmsweise einmal bestraft werden

                eine frage hab ich aber noch. wenn ich jetzt ein datum wie folgt ueberpruefe:
                PHP-Code:
                $treffer=preg_match(   "/(^[0-9]{4})+-([0-9]{2})+-([0-9]{2})$/",$date); 
                Ist es dann moeglich php zu sagen etweder so oder es darf ganz lehr gelassen werden ???
                Zuletzt geändert von joeCrack; 09.02.2006, 09:02.
                Zwei Dinge sind unendlich: das Universum und die menschliche Dummheit;
                aber bei dem Universum bin ich mir noch nicht ganz sicher. (Albert Einstein)

                Kommentar


                • #9
                  prüf das doch mit OR

                  wenn feld leer oder (regulärer ausdruck)
                  dann
                  ...
                  MfG
                  aim
                  Lies mich jetzt!
                  - OT-Tags-Liebhaber und BB-Code-Einrücker -

                  Kommentar


                  • #10
                    mach doch so Sternchen * davor und schreib dazu, daß diese Felder ausgefüllt werden müssen.

                    Auswertung im Script dann mit isset.

                    Kommentar

                    Lädt...
                    X