Ankündigung

Einklappen
Keine Ankündigung bisher.

Faxnummer mit preg_match() validieren

Einklappen

Neue Werbung 2019

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

  • Faxnummer mit preg_match() validieren

    Hi,
    ich möchte die, durch den User eingegebene Faxnummer nach Plausibilität prüfen.
    Eine Faxnummer darf folgende Zeichen beinhalten:
    + - / () leerzeichen und [0-9]
    Weiß jemand wie ich es mit der Funktion preg_match() machen kann?
    Ich brauche die Pattern dafür.

    Danke für jede Hilfe
    Grüße
    Aha


  • #2
    Poste das bitte in der Scriptbörse.
    Du willst keine Hilfe sondern fertigen Code.
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Das hier ist mein Versuch:
      PHP-Code:
      $faxnum "0049 69480459";
      if(
      preg_match('/[0-9]{+}?{(}?{)}?{/}?{-}?)/',$faxnum)){
          print 
      "This is a fax number<br/>";
      }else{
          print 
      "This isn't a fax number<br/>";

      ich bekomme dann folgendes:
      Warning: preg_match() [function.preg-match]: Unknown modifier '}' in E:\xampp\htdocs\aam\aamTests\testPaket\general_tes ts.php on line 26
      This isn't a fax number

      Kommentar


      • #4
        Die müssen ja auch escaped werden ala "\{\}", wenn du diese als zeichen haben willst
        "My software never has bugs, it just develops random features."
        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

        Kommentar


        • #5
          Zitat von aha_01 Beitrag anzeigen
          Das hier ist mein Versuch:
          PHP-Code:
          $faxnum "0049 69480459";
          if(
          preg_match('/[0-9]{+}?{(}?{)}?{/}?{-}?)/',$faxnum)){
              print 
          "This is a fax number<br/>";
          }else{
              print 
          "This isn't a fax number<br/>";

          ich bekomme dann folgendes:
          Warning: preg_match() [function.preg-match]: Unknown modifier '}' in E:\xampp\htdocs\aam\aamTests\testPaket\general_tes ts.php on line 26
          This isn't a fax number
          Man sieht das schlimm aus!
          http://www.gidf.de/RegExp+Tutorial
          "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

          Kommentar


          • #6
            Zitat von aha_01 Beitrag anzeigen
            Hi,
            ich möchte die, durch den User eingegebene Faxnummer nach Plausibilität prüfen.
            Das kann mit regulären Ausdrücken ganz sicher nicht ...

            Eine Faxnummer darf folgende Zeichen beinhalten:

            Zitat:+ - / () leerzeichen und [0-9]
            Weiß jemand wie ich es mit der Funktion preg_match() machen kann?
            Im Prinzip hast du dir die Antwort doch schon selbst gegeben.
            Du benötigst eine Zeichenklasse, die folgende Zeichen erlaubt:
            [0-9+\-\/\(\)]
            und davon einige (wir nehmen mal an, mindestens ein Zeichen):
            [0-9+\-\/\(\)]+
            und davor und dahinter soll nix anders stehen:
            \A[0-9+\-\/\(\)]+\z

            Also:
            PHP-Code:
            if (preg_match('\A[0-9+\-\/\(\)]+\z'$faxnum)) {
                
            // ...

            Das Plus würde ich aber dann durch eine sinnvollere Zeichenzahlangabe ersetzen bspw. '{3,15}'. Wobei die Längenregelungen für Telefonrufnummern wahrscheinlich schwieriger zu verstehen sind, als sie dann in einen entsprechenden regulären Ausdruck umzusetzen.
            Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

            Kommentar


            • #7
              FG no-no

              [MOD: verschoben]
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Hallo, ich habe selber neulich mal so eine Methode benötigt um Telefonnummern nach DIN 5008 zu validieren. Ist die gleiche Formatierung wie bei Faxnummer (bloß, dass dann noch "Fax: " davor steht).

                Zitat von aha_01 Beitrag anzeigen
                Eine Faxnummer darf folgende Zeichen beinhalten
                Was eine Faxnummer beinhalten darf solltest du der DIN überlassen:

                http://www.din-5008-richtlinien.de/telefonnummern.php

                Es geht bestimmt eleganter und kürzer, aber es erkennt die zulässigen Eingaben:

                PHP-Code:
                <?php

                $array 
                = array(
                        
                '23438',
                        
                '123456',
                        
                '02548 23548',
                        
                '0369 265484',
                        
                '02548 23548-20',
                        
                '0369 265484-41',
                        
                '0180 5 25486',
                        
                '+49 30 588459-258',
                        
                '0341 58295'
                        
                );


                function 
                din5008($value) {
                    return 
                preg_match('/^((\+[0-9]{2,4}\ [0-9]{1,4}|[0]{1}[0-9]{3}\ [1-9]{1}|[0]{1}[0-9]{1,5})\ ){0,1}[1-9]{1}[0-9]{1,10}(\-[0-9]{1,4}){0,1}$/'$value)!=0;
                }


                foreach ( 
                $array as $tel ) {
                    echo 
                $tel ' => ' . (din5008($tel)?'<span style="color: green; font-weight: bold;">gültig</span>':'<span style="color: red; font-weight: bold;">falsch</span>') . "<br />\n";

                }

                Zitat von Paul.Schramenko Beitrag anzeigen
                Poste das bitte in der Scriptbörse.
                Du willst keine Hilfe sondern fertigen Code.
                Ich weiß, ich weiß, normaler Weise macht man das nicht. Aber ich hatte es gerade 1:1 fertig hier.
                Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                Kommentar


                • #9
                  Das sollte dir helfen.
                  PHP-Code:
                  $statement '[^\d\+\-\/\(\) ]'
                  Es bedeutet soviel wie "alles was nicht deinem wunsch entspricht"


                  hier das test-skript...
                  PHP-Code:
                  <?
                  //Hier ist Dein gesuchtes Statment, heisst soviel wie "alles" was nicht    "+ - / () leerzeichen und [0-9]" entspricht.. 
                  $statement = '[^\d\+\-\/\(\) ]'; 



                  $fax = ' +42 / 777 - 555 - 800 (1)______ab_hier_nur_SCHROTT_gfdg&%"ç*"&%;&&\\\\&"*"""ççç%^üpök<x**:...;QWf§§§°§°°===><<>>>??'; //falsch
                  $fax2 = ' +42 / 777 - 555 - 800 (1)'; //korrekt


                  echo "Vorher...:$fax<br>Danach..:";


                  echo validate($fax);   //radikales rausparsen von schrott den du nicht brauchst.

                  echo '<hr>preg_match:<hr>';
                  echo 'fax : '.such($fax);
                  echo 'fax2: '.such($fax2);
                   

                  function validate($tmp) { global $statement; return preg_replace("/$statement/si", '', $tmp); }
                  function such($fax) 
                  {  
                      global $statement;
                      if (preg_match("/$statement/si", $fax))     { return  "Illegale Nummer mit Schrott!<br>"; } else { return "Nummer korrekt...<br>"; }
                  }

                  ?>
                  www.scriptforums.com - Foren für Skripts
                  www.ragonvote.net - Kostenlose Umfragen
                  www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

                  Kommentar


                  • #10
                    Tja, jetzt ist die Frage was der TE will. Valide Faxnummern oder eben so ein Pseudo-Wischi-Waschi.
                    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                    Kommentar

                    Lädt...
                    X