Сия заметка о том, как написать регулярное выражение для проверки валидности никнейма. На мой взгляд, валидным никнеймом является ник начинающийся с алфавитного символа, и содержащий только символы алфавита, цифры, символы - и _, и пробел. Ник не должен быть короче 4 символов. Загвоздка заключается в том, что алфавит может быть любым - японский, китайский, кирилический, греческий…
Если написать просто \w
, то мы ~ получим - A-Za-z0-9
, что точно не соответствует задаче. Решение - \p{L}
. В php сработает с версии >= 5.1.0, причём, если верить этому источнику , pcre
должен быть собран с опцией “–enable-unicode-properties
”. Я использую php5.3 из коробки, у меня всё заработало :) Итак, регулярка получается следующей - #^\ p{L} [ \p{L} \d-_\ ]+$# u
.