В системе 1С есть возможность запрашивать web-страницы. При запросе HTML страниц может возникнуть необходимость в замене HTML кодов на соответствующие символы. HTML коды символов часто используются при создании web страниц. В Интернете можно найти таблицы соответствий символов кодам.
Простая функция замены Если в заранее известно какие символы нужно заменить, то можно воспользоваться стандартной функцией СтрЗаменить().
Функция ЗаменаHTMLКодов(Знач ВходящаяСтрока)
СоответствиеКодов = Новый Соответствие(); СоответствиеКодов.Вставить("[", "["); СоответствиеКодов.Вставить("]", "]"); СоответствиеКодов.Вставить(" ", " "); Для каждого ЭлементКод Из СоответствиеКодов Цикл ВходящаяСтрока = СтрЗаменить(ВходящаяСтрока, ЭлементКод.Ключ, ЭлементКод.Значение); КонецЦикла; Возврат ВходящаяСтрока; КонецФункции
Универсальная функция замены HTML кодов на символы
Функция УниверсальнаяЗаменаHTMLКодов(Знач ВходящаяСтрока) МногострочнаяСтрока = СтрЗаменить(ВходящаяСтрока, "&#", Символы.ПС); МногострочнаяСтрока = СтрЗаменить(МногострочнаяСтрока, ";", Символы.ПС); Для НомерСтроки = 1 По СтрЧислоСтрок(МногострочнаяСтрока) Цикл ПодСтрока = СтрПолучитьСтроку(МногострочнаяСтрока, НомерСтроки); Если Найти(ПодСтрока, " ") > 0 ИЛИ ПустаяСтрока(ПодСтрока) Тогда Продолжить; КонецЕсли; Попытка КодСимвола = Число(ПодСтрока); Исключение Продолжить; КонецПопытки; Символ = Символ(КодСимвола); ЗаменяемаяПодСтрока = "&#" + ПодСтрока + ";"; ВходящаяСтрока = СтрЗаменить(ВходящаяСтрока, ЗаменяемаяПодСтрока, Символ); КонецЦикла; Возврат ВходящаяСтрока;
КонецФункции Поиск и замену HTML кодов можно организовать с помощью регулярных выражений. В системе 1С, работа с регулярными выражениями осуществляется через COM технологию. Соответственно такой подход требует больших вычислительных ресурсов. В тоже время замена через регулярные выражения - это более универсальный способ.
|