Ankündigung

Einklappen
Keine Ankündigung bisher.

ereg(), preg_match() oder was nu?

Einklappen

Neue Werbung 2019

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

  • ereg(), preg_match() oder was nu?

    Hi all!

    Zur Zeit kämpfe ich mit einem Problem, das mit echt zum Verzweifeln bringt.

    Ich möchte einen String überprüfen. Dieser darf nur aus den Zeichen a-z, A-Z, ß, ä, Ä, ö, Ö, ü, Ü bestehen.

    Ich habe z.Z. folgendes (bitte nicht lachen ):

    PHP-Code:
    $pruef preg_match("[a-z][A-Z]ßäÄöÖüÜ"$wort); 
    Aber irgendwie will das nicht, als Ergebnis liefert der immer nur 1

    In RegEx versuche ich mich gerade einzuarbeiten, aber trotzdem möchte ich das Problem jetzt irgendwie gelöst bekommen

    Danke!

    cu Chegga

  • #2
    $pruef = preg_match("/^[a-zA-ZßäÄöÖüÜ]+$/", $wort);

    in $pruef steht dann wohl 1 wenns geklappt hat.

    Ich weiß aber nicht ob die Sonderzeichen akzeptiert werden, aber ich nehms mal an.

    Kommentar


    • #3
      Juhu danke es klappt, jetzt muss ich nur noch Regex kapieren...

      Danke!

      cu Chegga

      Kommentar


      • #4
        Eckig geklammerte Ausdrücke stellen ein Zeichen dar. Runde Klammern gruppieren, hilfreich um auf sie zum Beispiel beim Ersetzen oder im späteren Verlauf des regulären Ausdruckes wiederzuverwenden.

        Dann gibts noch die Operatoren
        + steht für mind. 1 Zeichen
        ? steht für 0 oder 1 Zeichen
        * steht für 0 oder n Zeichen
        {n,m} steht für mindestens n, maximal m Zeichen

        /^(Hase)$/ findet also Hase, währed
        /^[Hase]$/ entweder genau ein H, genau ein a, genau ein s oder genau ein e trifft

        /^[Hase]+$/ würde also "zufällig" auch Hase treffen, aber auch saHe oder eine sonstige Kombination dieser Buchstaben

        Schau mal im Internet, sind eigentlich nur ein paar Regeln, wenn man die kapiert hat kommt man mit dem üblichen Problemen klar.

        PS: Keine Gewähr für Richtigkeit oben, schau lieber über Google nach

        Kommentar


        • #5
          Ich möchte einen String überprüfen. Dieser darf nur aus den Zeichen a-z, A-Z, ß, ä, Ä, ö, Ö, ü, Ü bestehen.
          $pattern = '~^[a-zöäüß]*$~i';
          preg_match($pattern, $string, $array);

          Durch den Modifer i kannst du das Pattern etwas kürzer halten.

          Kommentar


          • #6
            ä kann er mit Ä assoziieren?

            Kommentar


            • #7
              Ups, natürlich nicht, also:

              $pattern = '~^[a-zöäüßÖÄÜ]*$~i';

              Kommentar


              • #8
                Zitat von Zergling
                ä kann er mit Ä assoziieren?
                Bei richtiger [deutscher] Locale-Einstellung schon!

                Kommentar


                • #9
                  Jo Lokal, aber auf dem Server sicher nicht.

                  Kommentar


                  • #10
                    Aso war ne Frage. Geht offenbar doch mit dem i Flag.

                    $string = "hÄllo";
                    var_dump(preg_match("/^[a-zäöü]+$/i", $string));

                    ergibt

                    int(1)

                    Kommentar


                    • #11
                      Zitat von CIX88
                      Jo Lokal, aber auf dem Server sicher nicht.
                      Ich will Dir Deinen Glauben da nicht nehmen... :wink:

                      Kommentar


                      • #12
                        ... ausprobieren

                        Kommentar


                        • #13
                          Zitat von CIX88
                          ... ausprobieren
                          Bei mir läuft es mit setlocale().

                          Kommentar

                          Lädt...
                          X