preg_match

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

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

    Comment


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

      Comment


      • #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.
        Last edited by reallife; 20-12-2005, 14:47.

        Comment


        • #5
          thx hat geklappt!
          sad

          Comment


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

            Comment


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

              Comment


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

                Comment


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

                  Comment


                  • #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.
                    Last edited by prego; 04-01-2006, 15:35.

                    Comment

                    Working...
                    X