1С 8.3 Замена HTML кодов на символы
Данные > Примеры кода 1С > 1С 8.3 HTML
Перейти в раздел примеры кода 1С 8.3:
- 1С 8.3 HTML
Функции применяются для исключения спец.символов из HTML кода.
Первый пример - более универсальный.
Второй пример - для замены заранее известных символов.
Третий пример - более замороченный. Используется VBScript.
Замена всех HTML кодов в 1С 8.3 (универсальная):
&НаКлиенте
Функция ЗаменаHTMLКодов(Знач ВэбСтрока)
МногострочныйСписок = СтрЗаменить(ВэбСтрока, "&#", Символы.ПС);
Функция ЗаменаHTMLКодов(Знач ВэбСтрока)
МногострочныйСписок = СтрЗаменить(ВэбСтрока, "&#", Символы.ПС);
МногострочныйСписок = СтрЗаменить(МногострочныйСписок, ";", Символы.ПС);
Для НомерСтроки = 1 По СтрЧислоСтрок(МногострочныйСписок) Цикл
ОднострочнаяСтрока = СтрПолучитьСтроку(МногострочныйСписок, НомерСтроки);
Если Найти(ОднострочнаяСтрока," ") > 0 Или ПустаяСтрока(ОднострочнаяСтрока) Тогда
Продолжить;
КонецЕсли;
Попытка
КодСимвола = Число(ОднострочнаяСтрока);
Исключение
Продолжить;
КонецПопытки;
ПодстрокаЗамены = Символ(КодСимвола);
ЗаменяемаяСтрока = "&#" + ОднострочнаяСтрока + ";";
Для НомерСтроки = 1 По СтрЧислоСтрок(МногострочныйСписок) Цикл
ОднострочнаяСтрока = СтрПолучитьСтроку(МногострочныйСписок, НомерСтроки);
Если Найти(ОднострочнаяСтрока," ") > 0 Или ПустаяСтрока(ОднострочнаяСтрока) Тогда
Продолжить;
КонецЕсли;
Попытка
КодСимвола = Число(ОднострочнаяСтрока);
Исключение
Продолжить;
КонецПопытки;
ПодстрокаЗамены = Символ(КодСимвола);
ЗаменяемаяСтрока = "&#" + ОднострочнаяСтрока + ";";
ВэбСтрока = СтрЗаменить(ВэбСтрока, ЗаменяемаяСтрока, ПодстрокаЗамены);
КонецЦикла;
Возврат ВэбСтрока;
КонецФункции
КонецЦикла;
Возврат ВэбСтрока;
КонецФункции
Замена определённых (заранее известных, например: символы разметки) HTML кодов в 1С 8.3:
&НаКлиенте
Функция ЗаменаHTMLКодов(Знач ВэбСтрока)
Коды = Новый Соответствие();
Коды.Вставить("[", "[");
Коды.Вставить("]", "]");
Коды.Вставить(" ", " ");
Для Каждого ЭлементКод Из Коды Цикл
ВэбСтрока = СтрЗаменить(ВэбСтрока, ЭлементКод.Ключ, ЭлементКод.Значение);
КонецЦикла;
Возврат ВэбСтрока;
КонецФункции
Функция ЗаменаHTMLКодов(Знач ВэбСтрока)
Коды = Новый Соответствие();
Коды.Вставить("[", "[");
Коды.Вставить("]", "]");
Коды.Вставить(" ", " ");
Для Каждого ЭлементКод Из Коды Цикл
ВэбСтрока = СтрЗаменить(ВэбСтрока, ЭлементКод.Ключ, ЭлементКод.Значение);
КонецЦикла;
Возврат ВэбСтрока;
КонецФункции
Замена HTML кодов с помощью VBScript *регулярных выражений в 1С 8.3:
Функция ЗаменитьПодстроки(Шаблон, СтрЗамена, Знач Текст)
РегВыр = Новый COMОбъект("VBScript.RegExp");
РегВыр.Global = Истина; //Поиск всех вхождений шаблона
РегВыр.IgnoreCase = Истина; //Игнорировать регистр символов
РегВыр.MultiLine = Ложь; //Многострочный режим
РегВыр.Pattern = Шаблон;
Текст = РегВыр.Replace(Текст, СтрЗамена);
// Возврат замененных подстрок по регулярному выражению
Возврат Текст;
КонецФункции
Функция НайтиПодстроки(Шаблон, Текст)
РегВыр = Новый COMОбъект("VBScript.RegExp");
РегВыр.Global = Истина; //Поиск всех вхождений шаблона
РегВыр.IgnoreCase = Истина; //Игнорировать регистр символов
РегВыр.MultiLine = Ложь; //Многострочный режим
РегВыр.Pattern = Шаблон;
СоответствиеСтроки = РегВыр.Execute(Текст);
МассивЗначений = Новый Массив();
Для Каждого СтрСоотв Из СоответствиеСтроки Цикл
СубМассивЗначений = Новый Массив();
СубМассивЗначений.Добавить(СтрСоотв.Value);
Если ТипЗнч(СтрСоотв.SubMatches) = Тип("COMОбъект") Тогда
Для Каждого StrSubMatches Из СтрСоотв.SubMatches Цикл
СубМассивЗначений.Добавить(StrSubMatches);
КонецЦикла;
КонецЕсли;
МассивЗначений.Добавить(СубМассивЗначений);
КонецЦикла;
// Возврат многомерного массива результатов поиска
// по регулярному выражению по регулярному выражению
Возврат МассивЗначений;
КонецФункции
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник