Помогите с регулярными выражениями.

Discussion in 'PHP' started by kdk, 24 Jul 2007.

  1. kdk

    kdk Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    112
    Likes Received:
    5
    Reputations:
    -3
    Мне надо отфильтровать только цифры я фильтрую так - preg_match("|[0-9]|i",$id) , но почему то при запросе 1a1 он не отфильтровывает буквы. Подскажите как можно отфильтровать только цифры.
    Зарание СПС!!!
     
  2. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    в смысле "отфильтровать"?
     
  3. kdk

    kdk Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    112
    Likes Received:
    5
    Reputations:
    -3
    Мне надо проверить строчку на существования в ней только одних цифр
     
  4. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    PHP:

     
    if (preg_match('/[^0-9]/i'$var)) {
    // есть посторонние символы
    } else {
    // таковых нету
    }
     
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
    $str 
    "1a5sag3dgs34"
    $gg preg_match("/\d/",$str) ? "хек" "непохек";
    echo 
    $gg;
    ?>
     
  6. kdk

    kdk Elder - Старейшина

    Joined:
    8 Nov 2006
    Messages:
    112
    Likes Received:
    5
    Reputations:
    -3
    ОК.СПС
     
  7. hhover

    hhover Elder - Старейшина

    Joined:
    21 May 2007
    Messages:
    60
    Likes Received:
    36
    Reputations:
    11
  8. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Так:
    <?php
    $var = "15334";

    if (preg_match("/[^0-9]+/", $var))
    print("Параметр не число");
    else
    print("Параметр число");
    ?>

    Или так:
    <?php
    $var = "15334";

    if (!ctype_digit($var))
    print("Параметр не число");
    else
    print("Параметр число");
    ?>
     
  9. The_HuliGun

    The_HuliGun Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    191
    Likes Received:
    84
    Reputations:
    11
    2 Isis
    Твой код проверяет только вхождение одной цифри. Читай доки ;-)
     
    #9 The_HuliGun, 25 Jul 2007
    Last edited: 25 Jul 2007