Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] preg_replace: nur Ziffern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] preg_replace: nur Ziffern

    Hi,

    ich bins schon wieder

    Ich habe ein Formular gecodet, in dem ich Textfeld-Sorgenkinder habe: Die Telefonnummer/Mobilnummer/PLZ.

    Ich möchte, dass wenn die strings dieser Felder irgendwelche Zeichen außer Ziffern enthalten - sprich die strings nicht reine Ziffernfolgen sind - die "verunreinigten" strings "bereinigen" und wieder im Formular mit Hinweis erscheinen lassen (wie das geht, weiß ich).

    Ich will also Zeichen in einem string, die keine Ziffern sind, "löschen".

    Ich habe natürlich schon gegoogelt und einiges gefunden, aber ich verstehe bei preg_replace dieses ganze "/[^0-9]/$\-"-Gekrams nicht.

    Wer kann mir helfen?

    LG
    Paeisi

  • #2
    Gute Slides (englisch) zu regulären ausdrücken, von einfach bis fortgeschritten alles dabei
    -> Andrei's Regex Clinic

    Ansonsten gibt es hier: http://www.php.de/php-einsteiger/489...rundlagen.html
    auch noch ein paar Links zum Thema.

    Solltest du nichts lernen wollen sondern jemand suchen der dir das macht, sollte der thread wohl ins Gesuche-Forum.
    [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
    | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

    Kommentar


    • #3
      Zitat von robo47 Beitrag anzeigen
      Gute Slides (englisch) zu regulären ausdrücken, von einfach bis fortgeschritten alles dabei
      -> Andrei's Regex Clinic
      Sehr guter Link! Habe ich mir erstmal als PDF herunter geladen. Ich bin nämlich auch einer von denen, die bei regulären Ausdrücken immer mal wieder das Web bemühen müssen. Aber die Folien sind wirklich gut.
      [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
      [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

      Kommentar


      • #4
        Ich schließ also nach meinem Klinikaufenthalt auf das hier:

        PHP-Code:
        $_POST['telephone'] = preg_replace("/\D/",''$_POST['telephone']); 
        klappt auch genau, wie ichs möchte...

        Allerdings brauch ich jetzt noch ne funktion, die sagt, dass nicht nur ziffern vorkommen.

        muss ich da bei preg_match "/\d/" als pattern angeben?

        LG

        Kommentar


        • #5
          Nein.
          "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

          Kommentar


          • #6
            Mit is_numeric kann ich ja auch nichts anfangen, denn dabei kann ja auch das e, + und - angegeben werden.

            Kann mir jemand sagen, was ich verwenden muss? Komme nicht weiter.

            Danke im Voraus

            LG
            Paeisi

            Kommentar


            • #7
              Wenn DU etwas ersetzt, kannst Du es auch mit dem Original vergleichen. Natürlich nicht, wenn Du es in die selbe Variable schreibst.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Wie hilft mir ein Vergleich?

                Nachdem erkannt wurde, dass der string nicht nur aus Ziffern besteht, soll erst preg_replace eingesetzt werden.

                (Wenn nicht nur Ziffern, echo & preg_replace)

                LG

                Kommentar


                • #9
                  Ist doch Jacke wie Hose.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #10
                    Was ist Jacke wie Hose?

                    Ich will einen Text ausgeben, wenn nicht nur Ziffern im string sind.

                    Wie frage ich das ab?

                    if (???) {
                    $_POST['telephone'] = preg_replace("/\D/",'', $_POST['telephone']);
                    echo 'Ihre Telefonnummer wurde korrigiert.'
                    };

                    Kommentar


                    • #11
                      Erst ersetzen, dann vergleichen…
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        Okay...

                        ich soll also (als Beispiel) das vergleichen:

                        if (0123456789 != 01234 / 567-89) {...

                        AACH ich glaub, ich habs gecheckt! Wenn die Werte ungleich sind, echo!?

                        Meintest Du das?

                        Kommentar


                        • #13
                          Ja das meine ich. Grund: Eine vorherige Prüfung würde auch einen regulären Ausdruck erfordern. Das ist aber unnütz und inperformant, wenn Du sowieso filtern möchtest.
                          [COLOR="#F5F5FF"]--[/COLOR]
                          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                          [COLOR="#F5F5FF"]
                          --[/COLOR]

                          Kommentar


                          • #14
                            Da haste Recht!

                            Danke Dir mal wieder

                            Kommentar

                            Lädt...
                            X