[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с простейшим регулярным выражением
BlackGhost
На странице есть функция:

<?php function correct_input($text) // Функция проверки корректности ввода текстовых полей
{
// if (!preg_match("/^[а-яА-Я]+$/",$text))
if (!preg_match("/^[a-zA-Z]+$/",$text))
return 1;
else
return
0;
} ?>


Далее она используется следующим образом:

y= correct_input($_POST['fio']);


Проблема в том, что если я использую ее для проверки на возможность введения только английских символов - все работает:

Если все символы английские, то y = 0, если нет, то y = 1;

А вот если я использую для русских (раскоментирую if (!preg_match("/^[а-яА-Я]+$/",$text)) и закоментирую if (!preg_match("/^[a-zA-Z]+$/",$text)))

то она в любом случае возвращает значение 1. Хоть Петров, хоть Petrov

Для проверки добавлял в функцию echo $text, все в порядке, в $_POST['fio'] приходит Петров

И на сайте и в базе используется utf8_general_ci. Если я не использую проверку на ввод, то все добавляется и все отображается, и русские и английские. Собственно, и все.

В чем может быть проблема? В самой регулярке ошибки нет , а и А там точно русские!
Winston
"/^[а-я]+$/iu"
BlackGhost
Спасибо большое! Все заработало! А не подскажите, почему мой вариант не работал? И что значит /iu ?
Winston
Игнорирование регистра и работа с символами в utf
killer8080
Winston
ё пропустил smile.gif
BlackGhost
Спасибо!
Быстрый ответ:

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