За последние 24 часа нас посетили 18628 программистов и 1600 роботов. Сейчас ищут 946 программистов ...

Проверьте, верно написал регулярку

Тема в разделе "Регулярные выражения", создана пользователем Matt_le, 7 янв 2010.

  1. Matt_le

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

    С нами с:
    30 май 2009
    Сообщения:
    5
    Симпатии:
    0
    Задача написать регулярку которая фильтрует логин
    условия:
    1 Не каких спец символов
    2 первый символ только буквы
    3 только руский или английский буквы
    4 разрешено использовать цифры

    Написал во так
    PHP:
    1.  
    2. preg_match("/^[a-zA-Z][a-zA-Z0-9]*$|^[а-яА-Я][а-яА-Я0-9]*$/"
    3.  
     
  2. FiMka

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

    С нами с:
    12 май 2009
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вот мой примерчик, когда-то написанный :)

    Код (Text):
    1. /******************************************************************************
    2. purpose:    this function verifies if the specified user name is correct or not
    3. input:      $uname - user name to be verified
    4. output:     if the user name is valid function returns true, otherwise it returns false
    5. note:       user name is correct if
    6.             - it consists of latin characters or the following symbols: . _ -
    7.             - it is from 3 to 20 characters in length
    8.             - it starts and ends not with "." or "-" symbols
    9.             - it does not contain repeating "." or "-" symbols
    10. ******************************************************************************/
    11. function isvalid_uname($uname) {
    12.     // match a text not starts with "." (dot) or "-" (hyphen)
    13.     preg_match("/\A(?<![.-])[a-z0-9_][a-z0-9_.-]+[a-z0-9_](?![.-])\Z/i", $uname, $matches);
    14.     if( empty($matches[0]) || strlen($uname) < 3 || strlen($uname) > 20 )
    15.         return false;
    16.  
    17.     // make sure there are no repeating "." (dot) or "-" (hyphen) symbols
    18.     preg_match("/(-|\.){2,}/", $matches[0], $matches);
    19.     return ( empty($matches[0]) ) ? true : false;
    20. }
     
  3. Matt_le

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

    С нами с:
    30 май 2009
    Сообщения:
    5
    Симпатии:
    0
    Если честно меня не интересуют ваши примеры, меня интересует конкретно правильно ли я написал свою регулярку.
     
  4. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Matt_le
    Если честно, то вы можете это проверить и сами. Здесь не школа.
     
  5. FiMka

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

    С нами с:
    12 май 2009
    Сообщения:
    66
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Нормальная у вас, по-моему, регулярка.
    Код (Text):
    1. preg_match("/^[a-zа-я][a-zа-я0-9]+$/i"
     
  6. Matt_le

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

    С нами с:
    30 май 2009
    Сообщения:
    5
    Симпатии:
    0
    Simpliest
    не ожидал такой реакции и ответа, приношу извинения (зы я далеко не школьник, просто с регулярками испытываю сложности)

    FiMka
    спасибо за ответ

    Тему можно закрыть.