Страница 1 из 1
preg_match + регулярные выражения
Добавлено: 28 сен 2012, 00:00
Serge
В общем, возникла такая беда. Надо проверить, что введенные данные состоят только из русских букв, если нет - выдать ошибку. Намучался я с этой проверкой, никак не выходит...
Варианты, что пробовал:
Код: Выделить всё
!preg_match("/^[А-Яа-я]*$/", $string)preg_match("/^[А-Яа-я]*$/", $string)!preg_match("/^[А-Я,а-я]*$/", $string)preg_match("/^[А-Я,а-я]*$/", $string)
И так далее, и тому подобные... Во всех вариантах возникает 2 возможности: 1) пишу что угодно - хавает (причем выражение в яваскрипте /^[а-яА-Я]+$/ не пускает, а php вполне нормально принимает), 2) не воспринимает вообще ничего (пробовал русский, английский, цифры. С выражением "/^[а-яА-Я]*$/" принимает строки формата аА, и ничего более).
Про регулярные выражения начитался много, но так и не вышло. Помогите, кто чем может...
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 01:58
sanych_dv
Попробуйте в JavaScript указать диапазон символов кириллицы в юникоде: [\u0400-\u04FF]
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 08:19
Serge
sanych_dv писал(а):Попробуйте в JavaScript указать диапазон символов кириллицы в юникоде: [\u0400-\u04FF]
Может я ночью не правильно сформулировал
В яваскрипте (проверка на клиенте) - срабатывает все отлично, пропускает только русский текст. А вот на сервере (php) уже не принимает русские, вообще не пойму, что оно принимает...
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 10:34
sanych_dv
Проверяйте корректность кодировки на сервере.
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 20:27
Serge
sanych_dv писал(а):Проверяйте корректность кодировки на сервере.
Даже не знаю, куда смотреть
Скрипт - UTF-8 без бом, переданные данные возвращает нормально.
Меня смущает, что запросы
Код: Выделить всё
preg_match("/^[a-zA-Z]*$/", $str);preg_match("/^[а-яА-Я]*$/", $str);
при передавании им русской строки дают один и тот же результат. Может я чего-то не понимаю в самих регулярках? Или куда глянуть на счет кодировки сервера... На сайте хостинга полазил - ничего такого не нашел.
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 22:28
Serge
Спасибо, поставил где-то в настройках кодировку, работает с регулярным выражением preg_match("/[a-zA-Z]/", $str);
Re: preg_match + регулярные выражения
Добавлено: 28 сен 2012, 23:09
Alazaur
Для работы с UTF-8 модификатор
u нужен