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.

    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

        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

          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.

            Kommentar


            • #7
              FG no-no

              [MOD: verschoben]

              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.

                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>"; }
                  }

                  ?>

                  Kommentar


                  • #10
                    Tja, jetzt ist die Frage was der TE will. Valide Faxnummern oder eben so ein Pseudo-Wischi-Waschi.

                    Kommentar

                    Lädt...
                    X