[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярные выражения не работают адекватно
nik87
Здравствуйте.
нужно разрешить пропускать только русские буквы.
Раньше все было ок.
Возможно, проблемы из-за кодировки страницы: unicode. не знаю, короче.

Вот такая регулярка:

Код

function STRINGS_letter_minus_rus($text)

{ if(preg_match("#^[а-я]+$|i#",$text)) return true;
return false; }


И она тупо не пропускает некоторые русские буквы.

Попробовал вместо диапазона ввести весь русский алфавит. Стало работать нормально.
Потом нашел, на какой букве был баг. Сделал вот такое выражение:

Код

function STRINGS_letter_minus_rus($text)

{ if(preg_match("#^[а-рр-я-]+$|i#",$text)) return true;
return false; }


Работает нормально. Но сегодня проверял - для проверки ввел фигню с клавиатуры: Kfgib
И этот гад пропустил. Я вот не пойму, где в Kfgib содержится хоть одна русская буква?????? бесит аж.

Что посоветуете делать?
Просто я теперь не уверен, что у меня вообще хоть какие выражения правильно работают?



Спустя 6 часов, 13 минут, 32 секунды (1.03.2008 - 10:06) Timok написал(а):
Код
#^[а-яА-Я]+$#u


обрати внимание на модификатор u
Быстрый ответ:

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