Есть такая строка "Длинные футболки - T恤长 - это на китайском" Как определить, есть ли в строке китайские иероглифы? $text = "T恤长"; $pattern = '/[-а-я_А-Я]+/i'; if(preg_match($pattern, $text)) {// Почему true возвращает?}
Да не в этом дело! Функция preg_match не может отличить русские буквы от китайских иероглифов! В этом и вопрос. Как определить есть ли в строке "Длинные футболки - T恤长 - это на китайском" кит. иероглифы?
музчина, вы мозг не ебите себе и людям, ок???? вот такая строка на входе???? Код (Text): $text = "T恤长"; или же Код (Text): $text = "Длинные футболки - T恤长";
Всем спасибо. Решение найдено: Код (Text): $pattern = '/\p{Han}+/u'; if(preg_match($pattern, $text)) { //В строке найден хотя бы один китайский иероглиф }
А если вдруг корейский иероглиф залетит, неотличимый для нашего глаза? Может быть перефрмулировать как "содержит буквы, не являющиеся латиницей и кириллицей" и подобрать соответствующую регулярку, а?