länge begrenzen mit regular expressions

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

  • länge begrenzen mit regular expressions

    hi,

    ich möchte die länge der eingabe eines textareas auf maximal 10000 zeichen begrenzen. hierfür verwende ich die folgende regular-expression:

    /^[\s\S]{1,10000}$/

    statt \s\S hatte ich vorher einen . stehen, nur der ignoriert anscheinend zeilenumbrüche im text und validiert als fehlerhaft.

    wie lautet der reguläre ausdruck für einen text mit beliebigen zeichen und der länge 1 bis 10000?

    TIA

  • #2
    '/^[\w]{1,10000}$/'
    (ungetestet)
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Re: länge begrenzen mit regular expressions

      Original geschrieben von php_rookie
      wie lautet der reguläre ausdruck für einen text mit beliebigen zeichen und der länge 1 bis 10000?
      Was willst du mit regulären Ausdrücken?

      str_len oder vergleichbares dürfte in allen Sprachen, die mit Strings umgehen können, vorhanden sein.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Richtig. Außerdem gibt es extra einen Modifier für RegEx, der den Punkt auch Zeilenumbrüche erkennen lässt. Das ist der Modifier s.
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          '/^[\w]{1,10000}$/'
          (ungetestet)
          danke. und getestet? \w überprüft auf alphanumerische zeichen und den unterstrich, nicht jedoch auf zeilenumbrüche.
          Was willst du mit regulären Ausdrücken?

          str_len oder vergleichbares dürfte in allen Sprachen, die mit Strings umgehen können, vorhanden sein.
          ich brauche reguläre ausdrücke, str_len und konsorten sind mir bekannt, bringen mich aber nicht weiter.
          Richtig. Außerdem gibt es extra einen Modifier für RegEx, der den Punkt auch Zeilenumbrüche erkennen lässt. Das ist der Modifier s.
          danke!
          Zuletzt geändert von php_rookie; 13.02.2007, 10:26.

          Kommentar


          • #6
            ich brauche reguläre ausdrücke, str_len und konsorten sind mir bekannt, bringen mich aber nicht weiter.
            Um die Länge eines Strings festzustellen brauchst du gewiss keine RegExp.
            PHP-Code:
            if(strlen($_POST['deineTextArea']) > 10000){
                die(
            'Eingabe zu lange');
            }else{
                
            //Verarbeitung

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Um die Länge eines Strings festzustellen brauchst du gewiss keine RegExp.
              du kennst den context nicht... dass es elegantere methoden gibt, weiß ich. in meinem speziellen fall komm ich um regexp aber nicht herum!

              /^.{1,10000}$/s ist das wonach ich gesucht habe.

              Kommentar


              • #8
                du kennst den context nicht
                Dann kär mich doch auf. Würde mich wirklich interessieren...

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von php_rookie
                  du kennst den context nicht...
                  Weil du ihn mit keinem Wort erwähnt hast.

                  Für deine Frage, so wie sie gestellt war, ist str_len die sinnvollste Antwort.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Weil du ihn mit keinem Wort erwähnt hast.
                    meine frage war IMHO ziemlich präzise. ich habe gezielt nach einem regulären ausdruck gefragt und habe ihn erhalten. danke nochmals.
                    Dann kär mich doch auf. Würde mich wirklich interessieren...
                    ich kann einer bestimmten funktion in einem framework zum überprüfen von formulareingaben nur reguläre ausdrücke übergeben... die funktion ist vorhanden und kann nicht verändert werden. alles andere (z.b. str_len) ist nicht von interesse, da es ohnehin nicht verwendet werden kann.

                    Kommentar


                    • #11
                      ich kann einer bestimmten funktion zum überprüfen von formulareingaben nur reguläre ausdrücke übergeben
                      Da würde ich mir aber allenfalls Gedanken über den Aufbau der Fkt machen
                      Natürlich gehts es mit RegExp auch. Nur ist das wie mit Atombomben auf Spatzen geschossen (für diesen Fall zumindest)...
                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar

                      Lädt...
                      X