Функция НайтиПодозрительныеСлова(Знач Текст)
Результат = Новый Массив;
Текст = СтрЗаменить(Текст, Символы.ВК, "");
Строки = СтрРазделить(Текст, Символы.ПС, Истина);
Для Н = 0 По Строки.ВГраница() Цикл
Стр = Строки[Н] + " "; // пробел закрывает последнее слово
Слово = ""; Кир = Ложь; Лат = Ложь; Чуж = Ложь;
Для i = 1 По СтрДлина(Стр) Цикл
С = Сред(Стр, i, 1);
К = КодСимвола(С);
ЭтоКир = (К >= 1040 И К <= 1103) ИЛИ К = 1025 ИЛИ К = 1105;
ЭтоЛат = (К >= 65 И К <= 90) ИЛИ (К >= 97 И К <= 122);
ЭтоЧуж = (К >= 192 И К <= 591) ИЛИ (К >= 880 И К <= 1279 И НЕ ЭтоКир)
ИЛИ К = 173 ИЛИ (К >= 8203 И К <= 8205) ИЛИ К = 8288 ИЛИ К = 65279;
ЭтоПрочее = (К >= 48 И К <= 57) ИЛИ К = 95;
Если ЭтоКир ИЛИ ЭтоЛат ИЛИ ЭтоЧуж ИЛИ ЭтоПрочее Тогда
Слово = Слово + С;
Кир = Кир ИЛИ ЭтоКир; Лат = Лат ИЛИ ЭтоЛат; Чуж = Чуж ИЛИ ЭтоЧуж;
Иначе
Если (Кир И Лат) ИЛИ Чуж Тогда
Результат.Добавить(СтрШаблон("Стр. %1: %2%3", Н + 1, Слово,
?(Чуж, " [чужой/невидимый символ]", "")));
КонецЕсли;
Слово = ""; Кир = Ложь; Лат = Ложь; Чуж = Ложь;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат Результат;
КонецФункции