Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регулярное выражение
Форумы портала PHP.SU » » Вопросы новичков » Регулярное выражение

Страниц (1): [1]
 

1. PATCH - 07 Января, 2012 - 05:03:41 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if(!preg_match("/^[a-zA-Zа-яА-Я0-9]+$/",$login))


собствено надо проверить логин на то что бы он соответствовал символам Русского алфавита и английского + цифры в чем собствено косяк я чот уже понять не могу ввожу английские символы и цифры - все гуд ввожу типо вфывфывф - выдает ошибку - ну всмысле не допустимые символы в логине. в чем косяк то Оо?
2. evgenijj - 07 Января, 2012 - 05:54:29 - перейти к сообщению
Я бы для начала посмотрел, что там с кодировкой? Может быть, есть смысл использовать модификатор u? Ну и локаль -- может быть PHP не ясно, что такое а-яА-ЯёЁ?
setlocale(LC_CTYPE, "ru_RU.CP1251");
3. PATCH - 07 Января, 2012 - 06:00:35 - перейти к сообщению
кодировка utf8

U - инвертирует жадность. D судя по http://www.php.su/lessons/?lesson_17
(Добавление)
setlocale(LC_CTYPE, "ru_RU.CP1251"); - не помогло)
и так setlocale(LC_CTYPE, "ru_RU.UTF-8"); - непомогло)
4. evgenijj - 07 Января, 2012 - 06:05:23 - перейти к сообщению
Я не говорил U, я говорил u
u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ.

Цитата:
setlocale(LC_CTYPE, "ru_RU.CP1251"); - не помогло

Ну не надо так дословно -- это строка устанавливает локаль code page 1251, а не UTF8.
5. PATCH - 07 Января, 2012 - 06:09:08 - перейти к сообщению
я в курсе по этому и попробывал utf8 ) а что значит просто u - ? что то документаци ненахожу) установка utf8 в функции? если да то как присобачить к регулярке? походу после конца строки надо добавлять u да?)
6. evgenijj - 07 Января, 2012 - 06:10:28 - перейти к сообщению
PATCH
Уже дополнил ответ.
setlocale(LC_CTYPE, "ru_RU.UTF-8")
Не все так просто -- на разных UNIX-платформах по-разному -- уточняй у хотера. Могут быть варианты.
7. PATCH - 07 Января, 2012 - 06:12:04 - перейти к сообщению
нашел определения а как ее задать регулярке?)
(Добавление)
я вообщет на xp sp3 на локалхосте)))
8. evgenijj - 07 Января, 2012 - 06:14:10 - перейти к сообщению
PATCH пишет:
нашел определения а как ее задать регулярке?)

~[a-z0-9]+~ui
%[a-z0-9]+%ui
Как и любой другой модификатор.
9. PATCH - 07 Января, 2012 - 06:15:46 - перейти к сообщению
если так
то не получается)
10. evgenijj - 07 Января, 2012 - 06:17:14 - перейти к сообщению
PATCH пишет:
/^[a-zA-Zа-яА-Я0-9]+~u+$/

/^[a-zA-Zа-яА-Я0-9]+$/u
11. PATCH - 07 Января, 2012 - 06:19:43 - перейти к сообщению
о сработало спасибо)

 

Powered by ExBB FM 1.0 RC1