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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


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

      Comment


      • #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

        Comment


        • #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?

          Last edited by Griecherus; 24-11-2008, 22:17.
          Nieder mit der Camel Case-Konvention

          Comment


          • #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)){...}

            Comment


            • #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

              Comment


              • #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.

                Comment


                • #9
                  unset hat die Antwort bereits geliefert.

                  Comment


                  • #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.

                    Comment


                    • #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

                      Comment


                      • #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.

                        Comment

                        Working...
                        X