Ankündigung

Einklappen
Keine Ankündigung bisher.

Reguläre Ausdrücke testen

Einklappen

Neue Werbung 2019

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

  • Reguläre Ausdrücke testen

    Ich habe mir 2 reguläre Ausdrücke gebastelt:

    URL erkennen: ([w]{3}[.][\S]+[.][[:alpha:]]+[\S]*[^ [unct:]\s])
    E-Mail erkennen: ([\w]*[@][\S]*[.][\w]{1,6}[^ [\s])
    In meinem Forum möchte ich Benutzereingaben auf Hyperlinks und E-Mails kontrollieren.

    Hätte vielleicht jemand 3Min Zeit, sie zu testen? Ob Sie zuverlässig, aber nicht zu "streng" sind?

  • #2
    Nimm doch einfach die 2 Funktionen hier:

    PHP-Code:

    function is_url($url) {
        if (!
    preg_match('#^http\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i'$url)) {
            return 
    false;
        } else {
            return 
    true;
        }


    function 
    checkEmail($value) {
            if(!
    eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$"$value)) { 
                return 
    False;
            }
            else {
                return 
    True;
            }
        } 
    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Danke für die Antwort!
      Aber ich versuche, so wenig wie möglich zu "klauen", sondern alles selber zu basteln. Allein schon wegen des Lerneffektes.
      Auch wenn meine Funktionen schlechter sind als andere, benutze ich sie trotzdem.

      Kommentar


      • #4
        Zitat von chuvak Beitrag anzeigen
        Ob Sie zuverlässig, aber nicht zu "streng" sind?
        Ok, das ist vorbildlich, dass Du das selber machen willst, aber was meinst Du mit nicht so streng??? Was soll den erlaubt sein und was nicht bevor wir jetzt testen)??

        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Naja, erlaubt sind eben Hyperlink bzw. E-Mails, wie man sie aus dem Alltag kennt.
          So, dass sie bei Benutzereingaben gleich validiert werden.

          Kommentar


          • #6
            Eine URL hat für mich schon mal ein http://. www ist dagegen optional, es gibt auch URLs ohne www oder mit anderen Subdomains. Die Anzahl der verfügbaren Punkte scheint mir auch sehr willkürlich, Pfade und Parameter dürfen auch nicht vorkommen, oder? Wenn dann prüfst Du wohl eher auf Domains. Schon mal co.uk-Domains getestet?

            Und die E-Mails? Nunja, da kann man wohl schon vor dem @ aufhören, denn \w enthält kaum was ausser alphanumerischen Zeichen.
            [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


            • #7
              Also am besten man testet seine regulären Ausdrücke automatisch und gegen viele mögliche Eingaben. Dies geht am Besten mit einem entsprechenden Tool, zum Beispiel regex101 : http://www.joocom.de/blog/regulare-a...eicht-gemacht/

              Kommentar


              • #8
                08.04.2010,
                Darüber wird er sich sicher freuen!
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  http://php.net/manual/de/filter.filters.validate.php

                  lohnt sicher ein blick, falls jemand drüber stösst.

                  Kommentar


                  • #10
                    Zitat von joocom Beitrag anzeigen
                    Also am besten man testet seine regulären Ausdrücke automatisch und gegen viele mögliche Eingaben. Dies geht am Besten mit einem entsprechenden Tool, zum Beispiel regex101 : http://www.joocom.de/blog/regulare-a...eicht-gemacht/
                    Gib dem Betreiber dieses Forums docht etwas Geld, dann kannst Du Deine Werbung schon auf der ersten Seite einblenden.... Ansonsten kannst Du auch mal hier schauen, ob es nicht noch ein paar alte Einträge gibt:
                    http://web.archive.org/web/200312160...http://php.de/

                    Kommentar


                    • #11
                      Jeder Beitrag Werbung, das geht ja schon in Richtung Verzweiflung.
                      [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                      [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                      Kommentar


                      • #12
                        wenn der Blog wenigstens ein bischen interessant wäre.
                        Kann ich beim besten Willen nicht empfehlen!
                        Fatal Error: Windows wird gestartet

                        Wie administriert man ein Netzwerk: Beispiel

                        Kommentar

                        Lädt...
                        X