[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подскажите регулярку
safiullin.at
Нужна регулярка для проверки псевдонима, принятого из формы.
Допустимые символы: Все латинские буквы (большие и маленькие), все русские буквы (большие и маленькие), цифры, и некоторые символы "._-" без кавычек.

Делаю так
...
elseif(!preg_match("/^[a-zA-Zа-яА-Я0-9_.-]/", $name))
$info[] = 'имя указано неправильно';
...
Оно вроде бы работает, но мне все ровно кажется что я как-то по уродски реализовал все. Подскажите пожалуйста более правильный способ.



Спустя 5 минут, 59 секунд (14.10.2011 - 15:37) Winston написал(а):
Так
elseif(!preg_match("/^[\wА-яёЁ.-]$/", $name))
$info[] = 'имя указано неправильно';

Спустя 1 минута, 14 секунд (14.10.2011 - 15:38) alex12060 написал(а):
Winston

а так?


elseif(!preg_match("/^([\wа-яё.-]+)$/iu", $name))
$info[] = 'имя указано неправильно';

Спустя 1 минута, 7 секунд (14.10.2011 - 15:39) safiullin.at написал(а):
Ребята, я забыл сказать, что еще пробел может быть.

Спустя 1 минута, 28 секунд (14.10.2011 - 15:41) Winston написал(а):
alex12060
Можно и так smile.gif



Спустя 43 секунды Winston написал(а):
Цитата (safiullin.at @ 14.10.2011 - 15:39)
Ребята, я забыл сказать, что еще пробел может быть.

Добавь \s в символьный класс

Спустя 3 минуты, 12 секунд (14.10.2011 - 15:44) safiullin.at написал(а):
Спасибо, всем плюсанул smile.gif

Спустя 3 минуты, 36 секунд (14.10.2011 - 15:47) killer8080 написал(а):
Цитата (Winston @ 14.10.2011 - 15:41)
Добавь \s в символьный класс

не стоит \s - это не только пробел, но и все пробельные символы: вертикальная/горизонтальная табуляция, перевод строки, возврат каретки.
Можно так
"#^[a-zа-яё\d_. -]+$#iu"


PS подправил

Спустя 2 минуты, 44 секунды (14.10.2011 - 15:50) Winston написал(а):
Цитата (killer8080 @ 14.10.2011 - 15:47)
это не только пробел, но и все пробельные символы: вертикальная/горизонтальная табуляция

В данном случае сойдет, т.к. используются границы ^ $

Спустя 5 минут, 59 секунд (14.10.2011 - 15:56) killer8080 написал(а):
Цитата (Winston @ 14.10.2011 - 15:50)
В данном случае сойдет, т.к. используются границы ^ $

А табуляция?

UPD нет не канает \s сомтри
$t = 'assdgsd.g4
53ыв-ыё
'
;
preg_match("#^[a-zа-яё\d_.\s-]+$#iu", $t, $m);
echo '<pre>'.print_r($m,1).'</pre>';

Спустя 2 минуты, 36 секунд (14.10.2011 - 15:59) Winston написал(а):
Цитата (killer8080 @ 14.10.2011 - 15:56)
А табуляция?

У него ник приходит из инпута, при нажатии таба фокус пропадет.....

А хотя ты прав, табуляцию можно из блокнота вырезать и вставить...
Да ты прав smile.gif


_____________
Все программисты — оптимисты: "На этот раз программа обязательно пройдет!", "Я только что нашел последнюю ошибку!".
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.