Регулярные выражения. Совместное использование латиницы и кириллицы

ruskam

Новичок
Как описать регулярное выражение, где в тексте одновременно присутствует "кирилические" и "латинские символы". Т.е. именно одновременно.

Спасибо.
 

shureen

Милорд Лось Кристофер
PHP:
preg_match('/([A-z]+[А-яЁё]+|[А-яЁё]+[A-z])/', $str)
как нибудь вот так
 

fixxxer

К.О.
Партнер клуба
/u не забыть

если конечно не работаешь с кодировками времен царя гороха
 

Вурдалак

Продвинутый новичок
fixxxer, я просто вынес логику за пределы регулярного выражения. А без u — ну, так и не требуется вроде.
 

Вурдалак

Продвинутый новичок
Так автор хочет выявлять одновременное присутствие символов разных алфавитов. /[a-zа-яё]+/ui сливает их в один алфавит.
 

dadon72

Новичок
У меня с латиницей и цифрами все нормально работает. Вот только кирилиццу не принимает, даже вышеуказанный пример preg_match('/[а-яё]/i', $s) не работает.
не пойму в чем проблема, помогите пожалуйста?
 

dadon72

Новичок
Когда изменил кодировку на UTF-8 стало хуже. один за другими полетели все яваскрипты. и на загрузку и на обработке любых событий жалуются на разные символы, скобки, неизвестные строковые константы вообще сердце захватывает.
Мне нужно, чтобы страница была на винде. и нужно решит проблему принятия на поле фамилию либо латинских буквах либо на кириллице
 

damner2

Новичок
dadon72
1. какая у тебя кодировка файла была изначально?
2. какая кодировка отдавалась браузеру? (смотреть в заголовках ответа сервера, если там нет, то смотреть meta-тег)
3. в какой кодировке был текст(фамилия), который ты проверяешь регулярным выражением? var_dump($str[0]) выводит ли первую букву фамилии?

у тебя не работает preg_match из-за несовпадения кодировок файла и проверяемой строки(фамилии). Или, если они совпадают и являются utf-8, то модификатор "u" должен был решить твою проблему.
 

dadon72

Новичок
Изначально у меня и на хедере и на браузере была кодировка "windows-1251". Все нормально шло пока я не взялся различать латиницу | кириллицу посредством preg_match. Браузер игнорирует регулярку '/[а-яё]+/i', мои действия:
1. вставил /u, результат = браузер выдает ошибку (см. выше).
2. изменил хедер на utf-8 (см. выше), результат = при обновлении страницы кодировка браузера не меняется (остается винда), проблема не устранилась;
3 при ручном изменении кодировки браузера результат = на экране крякозябры, выводит вагон ошибок явовских

текст выражения:
if (preg_match("/^[A-z]+$/", $value) || preg_match("/^[А-яЁё]+$/", $value) return '1' else return '0';
 
Имеется ввиду перекодировать сам файл с php кодом в UTF-8, к примеру, в Notepad++ это можно сделать нажав на:
npad.png
 
Сверху