Допустимые символы: Все латинские буквы (большие и маленькие), все русские буквы (большие и маленькие), цифры, и некоторые символы "._-" без кавычек.
Делаю так
...Оно вроде бы работает, но мне все ровно кажется что я как-то по уродски реализовал все. Подскажите пожалуйста более правильный способ.
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
Можно и так
Спустя 43 секунды Winston написал(а):
Можно и так

Спустя 43 секунды Winston написал(а):
Цитата (safiullin.at @ 14.10.2011 - 15:39) |
Ребята, я забыл сказать, что еще пробел может быть. |
Добавь \s в символьный класс
Спустя 3 минуты, 12 секунд (14.10.2011 - 15:44) safiullin.at написал(а):
Спасибо, всем плюсанул

Спустя 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) |
А табуляция? |
У него ник приходит из инпута, при нажатии таба фокус пропадет.....
А хотя ты прав, табуляцию можно из блокнота вырезать и вставить...
Да ты прав

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