preg_match

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

  • preg_match

    ja ich weiss es steht viel dadrüber im forum aber es hat mir nicht geholfem. also das ist mein problem
    PHP-Code:

    $icq 
    $_POST['icq'];

    if(@
    preg_match('[^0-9]',$icq))
                   {
                   echo (
    "gefunden");            
                   }
                   else
                    {
                    echo (
    "nicht gefunden!");
                    
    $icq "";
                    } 
    kann mir jemand erklären warum er die zahlen nicht finden tut?

    ich raff das nicht. Danke schonmal im voraus.
    sad

  • #2
    Re: preg_match

    Ist dir klar, wofür das ^ am Beginn einer Zeichenklasse steht ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ne nicht wirklich. vielleicht könntest du mir das erklären oder helfen ?
      sad

      Kommentar


      • #4
        Re: preg_match

        Versuch mal das hier:
        PHP-Code:
        $icq $_POST['icq'];

        if(
        preg_match('/[0-9]/',$icq))
        {
          echo (
        "gefunden");
        }
        else
        {
          echo (
        "nicht gefunden!");
          
        $icq "";

        BTW: Das ^ am Beginn einer Zeichenklasse steht für eine Negierung, d.h. der Ausdruck der Zeichenklasse darf nicht im durchsuchenden String vorkommen.
        Zuletzt geändert von reallife; 20.12.2005, 14:47.

        Kommentar


        • #5
          thx hat geklappt!
          sad

          Kommentar


          • #6
            Original geschrieben von daSky16
            thx hat geklappt!
            Dass deine "ICQ-Nummer" damit aber immer noch andere Zeichen außer Zahlen enthalten kann, ist dir hoffentlich bewusst.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              wenn du das ausschließen möchtest, verwende einfach is_numeric($icq);

              Kommentar


              • #8
                original geschrieben von Nik13
                wenn du das ausschließen möchtest, verwende einfach is_numeric($icq);
                Damit schliesst du aber Buchstaben nicht zwangsläufig aus. Oktal- und Exponetialzahlen sind nummeric === true und enthalten x resp e.

                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
                  Vergiss aber nicht, dass manche Leute ihre ICQ-Nummern mit Bindestrichen angeben.
                  z.B. 123-456-789

                  Dafür kannst du vorher die Bindestriche zB mit str_replace entfernen.

                  Kommentar


                  • #10
                    PHP-Code:

                      $reg_exp 
                    "/[0-9-]+/"
                    So wird eine eine beliebig lange Zahl (+) mit den Zeichen 0-9 und "-" gefunden. Man kann das ganze noch verfeinern indem man sich mal die minimallänge von ICQ nummer anschaut und dann anstatt des + einfach {min,max} einsetzt.

                    //edit
                    Das Problem mit der RegExp ohne + (oder ähnliches) ist dad einfach nur geschaut wird, ob in dem string der übergeben wird ein(!) Zeichen vorkommt was 0-9 entspricht.
                    Zuletzt geändert von prego; 04.01.2006, 15:35.

                    Kommentar

                    Lädt...
                    X