Регулярное выражение не проверяет как надо. PHP

программирование php проблема регулярные выражения

Само выржение
/^[a-zA-Zа-яА-Я0-9]{3,30}$/
условие
if(isset($_POST["password"]) && preg_match( '/^[a-zA-Zа-яА-Я0-9]{3,30}$/', $_POST["password"])){
$password = $_POST["password"];
echo "OK";
}else{
echo "Не корректный пароль<br />";
}
Если ввожу ENG и/или цифры, то всё гуд. Если есть кириллический символ, то шлёт куда по дальше. Кодировки везде выставлены одни и те же, UTF-8
В чём может крыться подводный камень?

в .htaccess прописал: AddDefaultCharset UTF-8
в самом php скрипте: header('Content-Type: text/html; charset=utf-8');
в html форме: <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
сервер поддерживает юникод (VDS на FreeBSD)
все файлы сохранил в UTF-8

Примечание:
Причём если делаю echo $_POST["password"];, то всё корректно выводит.

Примечание:
Разобрался... добавил в конец регулярки модификатор u
/^[a-zA-Zа-яА-Я0-9]{3,30}$/u
работает=)

Примечание:
vabad, проверял там. Всё работало, а в скрипте нет. Модификатор спас=)
Ответы:
http://regexpr.ru/
Дополнение #3
Люблю людей способных разобраться самостоятельно :)


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.