Добрый день всем! Полдня ломаю голову над проблемой - не могу написать правильно регулярку с выделением слова на русском или еще каком языке, кроме английского. например во фразе "Mister Mi drink a milk" выделяем только слово milk таким выражением /\b(milk)\b/ все работает на ура! Но если во фразе "Маленький Мук мал да удал" попробовать выделить слово мал таким способом /\b(мал)\b/ вхождений не находит. Проблема еще в том, что я не могу использовать setlocale чтобы исправить положение, так как слово поиска генерируется из PHP но сравнение происходит на JS и сравнивает скрипт с контентом из сайта. Пробовал сделать с помощью перекодировки строки в ASCII но не нашел функции которая делает это с кириллицей, нашел с французским, но толку от нее тоже мало , потому что приходится отрывать по букве и перекодировать в php-скрипте, а так как строка возвращается в utf8 substr работает некорректно, принимая специальные символы (типа наших ю,б и т.д.) за два бита, а вот напрямую если поставить только букву перекодирует нормально, но только не русский ( привожу код функции переводировки в ascii <?php function uniord($ch) { $n = ord($ch{0}); if ($n < 128) { return $n; // no conversion required } if ($n < 192 || $n > 253) { return false; // bad first byte || out of range } $arr = array(1 => 192, // byte position => range from 2 => 224, 3 => 240, 4 => 248, 5 => 252, ); foreach ($arr as $key => $val) { if ($n >= $val) { // add byte to the 'char' array $char[] = ord($ch{$key}) - 128; $range = $val; } else { break; // save some e-trees } } $retval = ($n - $range) * pow(64, sizeof($char)); foreach ($char as $key => $val) { $pow = sizeof($char) - ($key + 1); // invert key $retval += $val * pow(64, $pow); // dark magic } return $retval; } $str='привет'; $s=''; echo "alert('".$str."');"; echo "alert('".hexdec(uniord(substr($str,6,1)))."');"; ?> выдаю в JS потому что обработка в регулярном выражении идет в JS код ascii возращаемый функцией не соответствует букве т