Цель
Преобразование HTML, извлеченного из Telligent (платформа экстрасети), в обычный текст и отправка в Slack
Настройка
Веб-крючок Telligent запускается при возникновении события.Приложение Azure Logic получает событие JSON.Значение JSON находится в HTML.Функция JavaScript Azure в конвейере приложения логики Azure преобразует значение JSON в простой текст.На последнем шаге в конвейере простой текст публикуется в Slack.
Пример входящего кода в функцию Azure
"body": "<p>" '</p><div style=\"clear:both;\"></div>"
Метод преобразования
Это основной код вфункция Azure.Я пропустил части, которые кажутся несоответствующими этому вопросу, но я могу предоставить весь сценарий, если это необходимо.
module.exports = function (context, data) {
var html = data.body;
// Change HTML to plain text
var text = JSON.stringify(html.body);
var noHtml = text.replace(/<(?:.|\n)*?>/gm, '');
var noHtmlEncodeSingleQuote = noHtml.replace(/'/g, "'");
var noHtmlEncodeDoubleQuote = noHtmlEncodeSingleQuote.replace(/"/g, "REPLACEMENT");
// Compile body for Slack
var readyString = "Slack text: " + noHtmlEncodeDoubleQuote;
// Response of the function to be used later
context.res = {
body: readyString
};
context.done();
};
Результаты
Одинарная кавычка успешно заменяется и точно разрешается при публикации вSlack.
Следующие методы замены для двойной кавычки выдают Status: 500 Internal Server Error
в функции Azure.
Неудачные методы замены
"\""
'"'
"
"'"'"
"["]"
"(")"
Помещение этих методов замены в ихown var
также выдает ту же ошибку.Например:
var replace = "\""
...
var noHtmlEncodeDoubleQuote = noHtmlEncodeSingleQuote.replace(/"/g, replace);
Код кажется правильным, потому что когда я заменяю "
на что-то вроде abc
, замена успешна.
Спасибо
Пожалуйста, прости мой JavaScript, так как я не программист и пытаюсь упростить процесс для моей работы.Однако я благодарен за любой совет, касающийся кода или всего моего подхода.