preg_match - Eingabe überprüfen

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

  • preg_match - Eingabe überprüfen

    Hallo zusammen,

    ich möchte mit preg_match überprüfen, ob der eigegebene String auch
    die erlaubten Zeichen enthält.

    Erlaubte Zeichen: a-Z, 0-9, -, _, [, ], (, ), sowie das Leerzeichen


    bisher habe ich: preg_match("/[^a-zA-Z0-9_-]/"

    Weis aber nicht wie ich [] und () und das Leerzeichen einbauen soll.


    Vielen Dank im vorraus.


    Srek

  • #2
    Mit Backslash escapen, also \[ usw.

    Kommentar


    • #3
      erstmal danke schön.

      habe nun den befehl erweitert aber hänge grade vor dem nächsten problem, wie kann ich in diese anweisung nun noch ein bauen, das nicht mehr als 1 leerzeichen hintereinander vorhanden sind?

      bisher
      preg_match("/^[a-zA-Z0-9=-_\[\]\(\)]+([a-zA-Z0-9=-_\[\]\(\)]|([[:space:]])?)$/",$_POST['name'])


      mfg
      Srek
      Zuletzt geändert von Srek; 14.01.2006, 14:20.

      Kommentar


      • #4
        Hi,
        hab diesen alten Post gefunden, ich verstehe noch nicht wie das mit dem Leerzeichen machen soll. Ich habe einen String in dem unendlich leerzeichen und Buchstaben sein können, wie sieht da die Suchmaske aus?

        Kommentar


        • #5
          Versuchs mal mit:

          preg_match("/^[a-zA-Z\ ]*[a-zA-Z\ ]$/",$string)

          Kommentar


          • #6
            klappt leider nicht, kriege ich immer folgende Fehlermeldung:
            Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/hassamu.local/pages/funktionen.php on line 61

            Kommentar


            • #7
              was hat mysql_fetch_assoc() mit regulären ausdrücken zu tun?
              mfg

              Kommentar


              • #8
                Ist alles etwas verschachtelt, jedenfalls, sofern der Überprüfte Begriff ins Suchmuster passt gibts keine Warningmeldung. Kann man denn nun irgendwie das Leerzeichen abfragen?

                Kommentar


                • #9
                  Original geschrieben von Daether
                  Ist alles etwas verschachtelt, jedenfalls, sofern der Überprüfte Begriff ins Suchmuster passt gibts keine Warningmeldung. Kann man denn nun irgendwie das Leerzeichen abfragen?
                  einfach das Leerzeichen eintippen, fertig, wenn du dabei deinen Query zerschießt, ist das ein anderes Problem

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Versuch es mal hier:

                    http://regexlib.com/RETester.aspx

                    Bei mir funktioniert es da ausgezeichnet

                    Kommentar


                    • #11
                      Original geschrieben von jmc
                      Versuchs mal mit:

                      preg_match("/^[a-zA-Z\ ]*[a-zA-Z\ ]$/",$string)
                      preg_match('/^[A-z ]+$/', $string) tut es auch.

                      aber ich habe immer noch nicht so genau verstanden, wie der string " ausshen" muss, damit der regex matcht.
                      aber das kann uns ja Daether erklären.

                      also, Daether, minimale stringlänge, maximale stringlänge, sind spaces grundsätzlich erlaubt oder nur single spaces, dürfen (single) spaces am anfang bzw. ende stehen, usw.

                      Daether, beschreib jetzt mal dein pattern genau, damit man dir auch helfen kann.

                      Kommentar


                      • #12
                        Danke an 3DMax.
                        Wenn man ein Leerzeichen ohne "\" vorranstellt, dann funktioniert es.

                        Kommentar

                        Lädt...
                        X