preg_match() /^[0-9]{1,5}$/ außer Nullen

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

  • preg_match() /^[0-9]{1,5}$/ außer Nullen

    Hallo,

    ist es nicht irgendwie möglich bei folgendem Vergleich Nullen auszuschließen?

    if(!preg_match("/^[0-9]{1,5}$/",$string)){...}

    Es dürfen natürlich Nullen vorkommen, aber der Wert an sich darf nicht 0 sein.

  • #2
    || $string == 0
    ...

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

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

    Kommentar


    • #3
      Also direkt in dem Vergleich ist es nicht möglich? .-(

      Kommentar


      • #4
        Würde

        PHP-Code:
        if($value AND $value <= 99999
        nicht schlauer sein? Geh sparsam mit regulären Ausdrücken um.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Original geschrieben von Truncate
          Also direkt in dem Vergleich ist es nicht möglich? .-(
          Doch, sicher, aber wieso umständlich, wenns auch einfach geht?
          PHP-Code:
          if (((int)$string 0) and ...)

          Grüße

          EDIT:

          Mal wieder zu lahm...
          @unset: Dass Regexen in der Regel langsamer sind, als entsprechende Alternativen, ist klar. Hier aber von einer Regex abzuraten ist etwas sehr minimalistisch, oder?

          Zuletzt geändert von Griecherus; 24.11.2008, 23:17.
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            Re: preg_match() /^[0-9]{1,5}$/ außer Nullen

            Original geschrieben von Truncate
            ist es nicht irgendwie möglich bei folgendem Vergleich Nullen auszuschließen?

            if(!preg_match("/^[0-9]{1,5}$/",$string)){...}

            Es dürfen natürlich Nullen vorkommen, aber der Wert an sich darf nicht 0 sein.
            Was meinst Du mit, der Wert darf nicht 0 sein? Die erste Ziffer?

            if(!preg_match("/^[1-9][0-9]{0,4}$/",$string)){...}

            Kommentar


            • #7
              Original geschrieben von Griecherus

              EDIT:

              Mal wieder zu lahm...
              @unset: Dass Regexen in der Regel langsamer sind, als entsprechende Alternativen, ist klar. Hier aber von einer Regex abzuraten ist etwas sehr minimalistisch, oder?

              Geht ja nicht um den konkreten Fall, aber reguläre Ausdrücke sind dafür da, komplexe Muster erkennen zu können. Und eine Zahl die zwischen 1 und 99999 liegt ist nunmal kein komplexes Muster. Es ist an für sich nicht mal ein Muster.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Re: Re: preg_match() /^[0-9]{1,5}$/ außer Nullen

                Original geschrieben von phpguru42
                [B]Was meinst Du mit, der Wert darf nicht 0 sein? Die erste Ziffer?
                So wie beschrieben... Nullen dürfen im String vorkommen, der String darf aber nicht "0" sein.

                Kommentar


                • #9
                  unset hat die Antwort bereits geliefert.

                  Kommentar


                  • #10
                    Re: Re: Re: preg_match() /^[0-9]{1,5}$/ außer Nullen

                    Original geschrieben von Truncate
                    So wie beschrieben... Nullen dürfen im String vorkommen, der String darf aber nicht "0" sein.
                    Dann macht es doch meiner?

                    PS: Und dass hier immer einige neunmalklug mäkeln müssen. Stellt euch ne Validator-Klasse vor und der Regular-Expression kommt aus einer Datenbank, da ist schlecht mit kleiner als etc ..., oder ihr schickt es durch eval.

                    Kommentar


                    • #11
                      Re: Re: Re: Re: preg_match() /^[0-9]{1,5}$/ außer Nullen

                      Original geschrieben von phpguru42
                      Dann macht es doch meiner?

                      PS: Und dass hier immer einige neunmalklug mäkeln müssen. Stellt euch ne Validator-Klasse vor und der Regular-Expression kommt aus einer Datenbank, da ist schlecht mit kleiner als etc ..., oder ihr schickt es durch eval.
                      Was meinst du mit "kommen aus der Datenbank"? Mach mal n konkreten Fall. Ich kann mir da grade rein nichts drunter vorstellen.
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Re: Re: Re: Re: Re: preg_match() /^[0-9]{1,5}$/ außer Nullen

                        Original geschrieben von unset
                        Was meinst du mit "kommen aus der Datenbank"? Mach mal n konkreten Fall. Ich kann mir da grade rein nichts drunter vorstellen.
                        Unsere Webanwendung besteht hauptsächlich aus Formularen zur Eingabe / Änderung / Anzeige.
                        Die Felder (Oberfläche/Datenbank) sind dabei in einer Tabelle hinterlegt und werden dynamisch, je nach Formular-ID ausgelesen und in das HTML-Template eingebunden.

                        Zur Zeit in etwa so, stark reduziert:

                        id|form_id|template_caption|template_name|db_name|template_datatype|db_datatype

                        So, jetzt soll zusätzlich eine Regular-Expression-Überprüfung wie von Truncate gesucht, eingebaut werden. Also ein neues Feld 'regex_validate'. Min-/Max_Werte sollen später noch hinzukommen, aber mit einem Regex kann man das erstmal alles auch erschlagen und man hat keine Sonderfälle.

                        Kommentar

                        Lädt...
                        X