Запрет пробела Eregi

Тема в разделе "PHP программирование", создана пользователем emeraudx, 18 июн 2010.

  1. emeraudx

    emeraudx Гость

    Помогите запретить пробел. Такая функция:

    if ( !empty( $login ) and !eregi( "[-_0-9a-zA-Zа-яА-Я]+", $login ) )
    $error = $error.'<li class="error_text">поле "логин" содержит недопустимые символы</li>'."\n";

    Я хочу, чтобы пользователь, который хочет зарегиться, не смог поставить пробел между словами. НЕ ПУТАЙТЕ! Мне не нужно, чтобы пробел был именно между словами, а не в начале и в конце слова, который можно обрезать с помощью функции trim.

    1) "пробел\логин\пробел" - можно, т.к. эти пробелы обрезает trim
    2) "логин\пробел\продолжение логина" - вот этот пробел я хочу запретить.

    Как быть, кто знает?
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    странно как-то...
    так если пробел всё равно тримаете, то зачем его разрешать вводить? :)

    Добавлено: я разделом не ошиблась при переносе темы?
     
  3. emeraudx

    emeraudx Гость

    trim удаляет только правый или левый пробел, пробел между словами он не удаляет.
    Вот я и хочу, чтобы пользователю выводилась ошибка, если он поставил пробел между словами
     
  4. vital

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    ЗЫ
     
  5. amsokol

    amsokol Гость

    Попробуй так

    if ( !empty( $login ) and !eregi( "^[а-яА-Яa-zA-Z0-9\-_]{3,20}$", $login ) )
    $error = $error.'<li class="error_text">поле "логин" содержит недопустимые символы</li>'."\n";

    Минимум 3 максимум 20 символов
     
Загрузка...

Поделиться этой страницей