PHP: if(!preg_match('/^[-_\s\.0-9a-zа-я\"]{1,30}$/i',$user)) отлично ищет совпадения слов в кавычках, например если ввести слово "Бетфор" . Проверял у себя дома на домашнем компе Прописал этот же регэксп на тестовом сервере на работе - теперь по словам в кавычках совпадения не отрабатываются. На какие настройки обратить внимание? на работе ОС freebsd 8.0, php5-pcre-5.2.10, дома тоже php5, подверсию не помню
дело в локали. гуглите setlocale+preg_match или пользуйтесь уникодной кодировкой, но там свои "особенности"
русские символы в скрипте набраны в кодировке ru_RU.CP1251. также сделал еще в скрипте setlocale(LC_ALL, 'ru_RU.CP1251'); В инете по этому запросу setlocale+preg_match описывается ситуация когда поиск не идет по маленьким и заглавным русским буквам, у меня же это работает. Может еще какая заковыка есть?
не факт , что на вашем тестовом сервере локаль надо делать именно так. вот фрагмент из кода форума punbb: PHP: // Determine what locale to use switch (PHP_OS) { case 'WINNT': case 'WIN32': $locale = 'russian'; break; case 'FreeBSD': case 'NetBSD': case 'OpenBSD': $locale = 'ru_RU.CP1251'; break; default: $locale = 'ru_RU'; break; } // Attempt to set the locale setlocale(LC_CTYPE, $locale); не тестировал. как говорится, почем взял, потом и продаю