Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP reguläre Ausdrücke Hilfe?

Einklappen

Neue Werbung 2019

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

  • PHP reguläre Ausdrücke Hilfe?

    Hallo Leute,

    ich habe einen einfachen regularen Ausdruck geschrieben, der mir eingegebene
    Kennzeichen überprüfen soll.

    Meine Bedingungen sind nur die 2 "-" und das die Ortskennung mindestens 1 und maximal 3 Buchstaben hat.

    Hier der Code:
    Code:
    if(preg_match('/[a-zA-Z]{1,3}\-[a-zA-Z]{1,2}\-(\d+)/', $kennzeichen)) {
    		$PlateLegit = "True";
    } else {
    		$PlateLegit = "False";
    }
    Wenn ich ein Kennzeichen mit 5 Buchstaben am Anfang eintrage: "ABCD-AB-123", müsste es eigentlich falsch sein, aber er trägt dies trotzdem in die Datenbank ein.

    Was ist an dem Ausdruck falsch. War mein erster Versuch.
    Kennt jemand eine gute Übersicht aller Ausdrucksbefehle und Deutungen?

    Mit freundlichen Grüßen
    Fabian


  • #2
    Preg match sucht im gesamten Haystack nach einem passenden Ausdruck (Needle).
    Du musst noch angeben dass er vom Anfang an prüfen soll (weiss den Befehl dafür nicht mehr auswendig).
    ?!? Woot Woot...

    Kommentar


    • #3
      Du hast vergessen festzulegen, dass gleich vor den 1-3 Buchstaben der Zeilenanfang ist ($) und nach der Zahl das Zeilenende(^), ansonsten muss dieser ausdruck nur irgendwo in deinem String passen, ganzegal was davor oder danach kommt.
      Zitat von nikosch
      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

      Kommentar


      • #4
        ^ = Anfang des Ausdrucks
        $ = Ende des Ausdrucks


        Wenn es sich dabei um deutsche Kennzeichen handelt, sollten Umlaute mit eingeschlossen werden.

        das '-' muss nicht escaped werden; je nach Schreibweise könnte statt dem '-' auch ein Leerzeichen stehen (z.B. [- ]{1})

        Kommentar


        • #5
          je nach Schreibweise könnte statt dem '-' auch ein Leerzeichen stehen (z.B. [- ]{1})
          So etwas würde ich lassen und Leerzeichen schon vorher komplett rausfiltern.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Das verstehe ich nicht so ganz.
            wäre das dann so:
            Code:
            if(preg_match('/^[a-zA-Z]{1,3}$\-^[a-zA-Z]{1,2}$\-^(\d+)$/', $kennzeichen))
            Oder kann mir jemand mal so eine Kennzeichenprüfung schicken?

            Kommentar


            • #7
              Anfang und Ende des gesamten Ausdrucks

              Code:
              ^[a-zA-Z]{1,3}-[a-zA-Z]{1,2}-(\d+)$

              Kommentar


              • #8
                hier kannst du das selber Testen -> http://regex101.com/r/xQ5kJ3

                Kommentar


                • #9
                  1. /i
                  2. Groß- und Kleinschreibung würde ich ebenfalls direkt vorher filtern/vereinheitlichen.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X