regulärer Ausdruck für Zeilenumbruch bzw. Enter in Textblöcken

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

  • regulärer Ausdruck für Zeilenumbruch bzw. Enter in Textblöcken

    Hallo,

    ja, ich habe schon das Tutorial auf php-recource gelesen.

    Mit fliegt trotzdem gleich das Blech weg, da folgendes einfach nicht funktionieren will:

    Es soll in einem Textblock der eingegebene Text auf Gültigkeitsverletzungen geprüft werden.
    Das klappt auch prima bis auf den Punkt, daß man ja in einem Textblock beliebig häufige Zeilenumbrüche mit ENTER "einbauen" kann. Da dies als "Zeichen" nicht abprüfbar ist, meldet die Gültigkeitsprüfung "falsches Zeichen".

    Ich habe dann herausgefunden (im Tutorial) das man mit Modifier das Problem lösen kann (i;m;s) - geht aber momentan leider nicht.

    Hier meine letzte Variante der Gültigkeitsprüfung:

    function check_kann_zahlen_buchstaben($d)
    {
    if (ereg("/[^0-9,a-zA-ZäöüÄÖÜß :;,\+\-]+/i", $d))
    return "Nicht verwendbares Zeichen! ";

    return "NOERR";
    };

    Es soll folgendes realisiert werden:
    Die oben angegebenen Zeichen dürfen in dem Textblock genutzt werden. Dieser kann aus 1-n Zeilen bestehen (auch Leerzeilen). Die Gültigkeitsprüfung soll nur dann einen Fehler anzeigen, wenn ein Zeichen außerhalb der definierten Zeichen im Textblock genutzt wurde.

    Mit dem oben angegebenen Code werden aber alle Zeichen, auch §,$,% .. "durchgelassen". Entfernt man den Modifier, so funktioniert die Prüfung. Dann sieht der Code so aus:

    function check_kann_zahlen_buchstaben($d)
    {
    if (ereg("[^0-9,a-zA-ZäöüÄÖÜß :;,\+\-]+", $d))
    return "Nicht verwendbares Zeichen! ";

    return "NOERR";
    };


    Was mache ich falsch????

    Danke für Antworten[B]

  • #2
    Hallo,

    bin mir ned grad sicher, aber der Zeilenumbruch müsste mit \n zu prüfen sein oder mit \r\n

    Gruss Quetschi
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Hallo Quetschi,

      danke für Deine Antwort. \n ist ja der Zeilenumbruch in php. Ich habe die auch schon versucht einzubauen. War aber leider nichts. Daher habe ich es dann mit dem Modifier versucht.

      Wie und wo würdest Du "\n" in den Code einbauen - vielleicht hatte ich es damals falsch gemacht.

      Bitte stelle doch einmal einen Vorschlag ein.

      Danke

      Kommentar


      • #4
        Probier mal das hier:
        PHP-Code:
        if ('ereg' != 'preg_match') {
            echo 
        'Du verwendest die falsche Funktion!<br />';

        hopka.net!

        Kommentar


        • #5
          ich hätt jetzt auf Anhieb gesagt mit

          \\n

          einbauen, aber genau das hat bei regulären Ausdrücken schon eine eigene Bedeutung. Jetzt steh ich auch grad auf dem Schlauch, aber vielleicht probierst einfach mal \\n.

          Gruss
          Quetschi
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Kleine "Tool-Sammlung"

            PHP-Code:
            <?php

            $text 
            trim($text);   # Leerzeichen löschen, die am 
                                             #Anfang und am Ende stehen.

            $text preg_replace('/\S{260}/''\0 '$text);  # überlange wörter und
                                                       # lange wörter 
                                                       #ohne space trennen

            $text htmlspecialchars($text); #HTML-Zeichen wie < und > in 
                                             #Steuerzeichen wie &lt; und &gt; 
                                             #umwandeln.

             
            $text preg_replace('/(\s{10})\s+/''\1'$text);   # überlange enter 
                                                                                #und space löschen

            ?>
            Zuletzt geändert von xManUx; 16.03.2005, 02:58.

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              Die Löööööööööösssssung

              Meine wertvolle php Unterstützung Frau Fluck hat die Lösung :

              ereg("[^a-zA-Z0-9öäüÄÖÜß:;,\"_ \.\-|\r|\n]+", $d)

              Kommentar

              Lädt...
              X