if(preg_match("/^[0-9]$/",$id)) vs. x00

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

  • if(preg_match("/^[0-9]$/",$id)) vs. x00

    Hallo,

    ich prüfe aktuell so auf die richtige Form einer ID:

    if(preg_match("/^[0-9]$/",$id))

    Erst danach wird in der Datenbank geprüft ob gültig usw.

    Nun die Frage:

    Angenommen in der obigen $id ist x00 mit drin als Code und danach irgendwas anderes... fällt die Prüfung dann trotzdem positiv aus oder prüft preg_match strikt nur auf Zahlen und nicht ev. unsichtbare Steuercodes?

  • #2
    Re: if(preg_match("/^[0-9]$/",$id)) vs. x00

    Angenommen in der obigen $id ist x00 mit drin als Code und danach irgendwas anderes... fällt die Prüfung dann trotzdem positiv aus oder prüft preg_match strikt nur auf Zahlen und nicht ev. unsichtbare Steuercodes?
    Ich weiß nicht ganz, was du mit x00 meinst, aber die Regex passt nur auf die Ziffern 0-9 (imho fällt 10 schon durch). Du hast die Begrenzungen für Beginn und Ende des Strings, sollte kein Problem sein.

    Kommentar


    • #3
      x00 ist ein Steuercode... die Zahl 10 geht da übrigens sehr wohl noch

      Kommentar


      • #4
        Original geschrieben von Truncate
        x00 ist ein Steuercode... die Zahl 10 geht da übrigens sehr wohl noch
        Ahh, ich glaube das Forum schluckt das Backslash.
        Das Steuerzeichen ist ihm im String eigentlich völlig egal, steht doch nicht in der Regex. Aus dem String wird etwas derartiges ja nicht interpretiert.
        Btw: 10 match nicht auf dein Muster!

        Kommentar


        • #5
          Ups... wieso nicht? Eigentlich müßten doch da alle Zahlen die die Ziffern 0 - 9 haben durchgehen...
          Zuletzt geändert von Truncate; 05.10.2007, 20:03.

          Kommentar


          • #6
            Original geschrieben von Truncate
            Ups... wieso nicht? Eigentlich müßten doch da alle Zahlen die die Ziffern 0 - 9 haben durchgehen...
            Nö!
            Du kennst Modifikatoren?
            Code:
            ...
            *
                0 or more quantifier
            +
                1 or more quantifier
            ...

            Kommentar


            • #7
              Demzufolge müßte das richtig sein oder?

              "/^[0-9]+$/"

              Vermute mal beim Rumändern ist das Plus abhanden gekommen...

              Kommentar


              • #8
                Original geschrieben von Truncate
                Demzufolge müßte das richtig sein oder?

                "/^[0-9]+$/"

                Vermute mal beim Rumändern ist das Plus abhanden gekommen...
                Jap, das Muster erlaubt alle dezimalen Ziffern. Nicht, das es sonderlich kritisch wäre, aber vielleicht willst du die erlaubte Anzahl an Stellen ja auch noch einschränken (ich kenne deinen Hintergrund jetzt nicht). Da musste dann einen Modifier a la {1,10} anwenden!
                Aber zu mehr Details zu Regex, am besten ein Tutorial nutzen!

                Kommentar

                Lädt...
                X