несложный regexp php

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Andrey2009
рядовой
Сообщения: 46
Зарегистрирован: 2009-12-01 10:43:06

несложный regexp php

Непрочитанное сообщение Andrey2009 » 2010-07-11 19:42:16

Код: Выделить всё

if(!preg_match('/^[-_\s\.0-9a-zа-я\"]{1,30}$/i',$user))
- есть такая регулярка. Не понятно одно - почему регэксп работает также когда вожу Большие английские символы, а если ввожу Большие русские символы - то совпадения не срабатывают, приходится в регулярное выражение добавлять А-Я. Модификатор i указан, не могу в толк взять из-за чего не работает
Последний раз редактировалось Alex Keda 2010-07-11 20:54:17, всего редактировалось 1 раз.
Причина: Товарищщи, цените чужое время, юзайте кнопочку [code]...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Andrey2009
рядовой
Сообщения: 46
Зарегистрирован: 2009-12-01 10:43:06

Re: несложный regexp php

Непрочитанное сообщение Andrey2009 » 2010-07-12 6:02:36

еще сюда же вопросик

Код: Выделить всё

if(!preg_match('/^[-_\s\.0-9a-zа-я\"]{1,30}$/i',$user))
отлично ищет совпадения слов в кавычках, например если ввести слово "Бетфор" . Проверял у себя дома на домашнем компе
Прописал этот же регэксп на тестовом сервере на работе - теперь по словам в кавычках совпадения не отрабатываются. На какие настройки обратить внимание?
на работе ОС freebsd 8.0, php5-pcre-5.2.10

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: несложный regexp php

Непрочитанное сообщение skeletor » 2010-07-12 8:46:26

Версии php одинаковы на разных машинах?

Andrey2009
рядовой
Сообщения: 46
Зарегистрирован: 2009-12-01 10:43:06

Re: несложный regexp php

Непрочитанное сообщение Andrey2009 » 2010-07-12 9:41:01

какая подверсия пхп дома не помню, но версия точно php5 и php5-extensions.

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: несложный regexp php

Непрочитанное сообщение skeletor » 2010-07-12 10:17:57

Мда...
Если ты не в курсе, то на данный момент существуют версии 5.2 и 5.3, которые имеют достаточно не мало отличий.

Andrey2009
рядовой
Сообщения: 46
Зарегистрирован: 2009-12-01 10:43:06

Re: несложный regexp php

Непрочитанное сообщение Andrey2009 » 2010-07-12 12:39:33

тут мне на другом форуме сказали гуглить в сторону setlocale + preg_match, так что дело не в версиях php
первая проблемка ушла, а вот вторая не хочет уходить....

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: несложный regexp php

Непрочитанное сообщение zg » 2010-07-19 19:23:20

Andrey2009 писал(а):тут мне на другом форуме сказали гуглить в сторону setlocale + preg_match, так что дело не в версиях php
первая проблемка ушла, а вот вторая не хочет уходить....
локаль для однобайтовых кодировок пашет на ура, но с UTF-8 будут проблемы. До выхода шестого пхп, единственный реальный способ работать в UTF-8 - функции mb_*.
Andrey2009 писал(а):а если ввожу Большие русские символы - то совпадения не срабатывают
потому что для русских букв надо задавать отдельно диапазон больших букв и отдельно ёЁ. Примерно так:

Код: Выделить всё

if( !preg_match('/^[-_\s\.0-9a-zа-яА-ЯёЁ\"]{1,30}$/i',$user) )