Когда делал ограничение на ввод только русских букв на одном из своих проектов, использовал всем известную регулярку
if (!preg_match("/^[а-яА-Я]/",$_GET['name']))
но она упрямо не хотела воспринимать букву ё как русскую, т.е. при вводе буквы ё условие не срабатывало, для исправления ситуации попробовал сделать так
if (!preg_match("/^[а-яА-ЯёЁ]/",$_GET['name']))
что прекрасно работает.
Я вообще с регулярками не дружу, так что может велосипед открыл, но тут уж пардон :)