За последние 24 часа нас посетили 186489 программистов и 1972 робота. Сейчас ищет 1181 программист ...

Подскажите регулярное выражение для проверки номера телефона

Тема в разделе "PHP для новичков", создана пользователем Andrey K., 3 сен 2008.

  1. Andrey K.

    Andrey K. Активный пользователь

    С нами с:
    22 май 2007
    Сообщения:
    83
    Симпатии:
    0
    Привет.
    Нужно регулярное выражение для проверки номера телефона.
    Номер телефона может содержать:
    +
    пробелы
    (
    )
    [
    ]
    -
    /
    \
    цифры от 0 до 9

    Номер телефона должен содержать не меньше шести цифр и до 250 символов в сумме.

    Пока только написал:
    Код (Text):
    1. preg_match("/^(\d){6,250}$/i", $phone)
    - :oops: Курю мануал дальше...
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    preg_match("/^\++[\(\)\[\]\s\\\/\-]+(\d){0,8}[\(\)\[\]\s\\\/\-]+[\s\-0-9]$/i", $phone)

    А вообще, телефоны могут быть разными:
    3-55-12
    10 12343 4341444
    10 (12343) 434 14 44
    8 \495\ 394-12-12
    7-555-00-1

    Поэтому лучше написать так:
    preg_match("/^[\(\)\[\]\s\\\/\-0-9\+]{5,250}$/i", $phone)
     
  3. Andrey K.

    Andrey K. Активный пользователь

    С нами с:
    22 май 2007
    Сообщения:
    83
    Симпатии:
    0
    Phone is - 123234124124
    Warning: preg_match() [function.preg-match]: Unknown modifier '\' in test_preg.php on line 15
     
  4. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    PHP:
    1. <?php
    2. $phone = preg_replace('#\D+#','',$phone);
    3. $ln = strlen($phone);
    4. if($ln>4 OR $ln<11){
    5. //телефон можно считать правдоподобным
    6. }
    7. ?>