регулярные выражения

Mozart

Новичок
регулярные выражения

Мне надо чтоб ник состоял только из латинских букв и цифр...
Использовал такой код:
PHP:
if (!eregi("[0-9a-zA-Z]", $login))
{
echo 'Ваш логин должен состоять только из цифр и латинских букв!';
exit;
}
Но если вводить знаки препинания и всякую бяку скрипт ее пропускает(например: №;%:?*(": ) , можно ли их не пропускать сразу или придеться их заменять?
 

Demiurg

Guest
if (eregi("[^0-9a-zA-Z]", $login))

и вообще лучше пользоваться функциями preg_*
 

valyala

Новичок
if (eregi("[^0-9a-zA-Z]", $login))
Demiurg, что-то ты напутал в своем регулярном выражении. Правильнее будет вот так:
PHP:
if (!eregi('^[0-9a-z]+$', $login))
{ 
    echo 'Ваш логин должен состоять только из цифр и латинских букв!'; 
    exit; 
}
 

valyala

Новичок
да, признаю свою ошибку. Хотя можно придраться к твоей регулярке, потому что она пропускает строку нулевой длины :)
 

Mozart

Новичок
не, ну намудрить тут еще много чего можно...но ето уже я отдельно сделаю..
 

Cblpok

Новичок
Ты всякие непонятки-синволы отсквочивай:
preg_quote('где их отсквочивать');
Там всякие №;%:?*(": ) потеряют свое значение и станут просто текстом.
А про первое:
if(!preg_match("/[0-9a-z]/i",$login)){

};
 

Фанат

oncle terrible
Команда форума
Что интересно - замечания сырку делает кто угодно, но не администрация.
Я, все-таки ,уверен, что они специально их разводят. Чтобы не скучно было.
Или чтобы меня позлить.
 

Cblpok

Новичок
Правда чтоль так глупо сказал?
Вроде так правильно(накануне прочитал об этом)...
 

Cblpok

Новичок
На сайте http://myphp.net.ru в разделе статьи/рег выр
А можно там русскими писать?
Я искал не нашел...
preg_match("/[а-я]/",$text);?
 

TuBu

Guest
Что интересно - замечания сырку делает кто угодно, но не администрация.
Я, все-таки ,уверен, что они специально их разводят. Чтобы не скучно было.
Или чтобы меня позлить.
Так ведь и на икспоинте он есть. Или тебя там тоже хотят позлить? ;-)
 
Сверху