Преобразовать plain текст в простую разметку HTML онлайн
...точней, преобразовать txt2html прямо в вашем браузере, так как сервис на Яваскрипте. Здесь мне требовалось только следующее:
- заменить "критичные" для HTML символы <, > и & на их HTML-сущности;
- убрать лишние (больше одной подряд) пустые строки;
- поставить в конце строк теги разрыва строки <br>;
- опционально сжать "лишние" пробелы между лексемами и в начале или конце строк.
Другие задачи - в других заметках, например, слияние строк, массив из строк, перeвернуть список строк и т.д. Чуть более "мощный" сервис на PHP есть здесь.
Вот скрипт в работе онлайн и его небольшой исходник (документ HTML без обрамляющих тегов в кодировке Юникода UTF-8). Нужный текст вводится или вставляется в верхнее поле, результат будет в нижнем.
<div> <p><textarea id="srcText" rows="12" cols="80"></textarea></p> <p><textarea id="resHtml" rows="12" cols="80"></textarea></p> <p> <input type="checkbox" id="trimSpaces"> <label for="trimSpaces">Сжимать лишние пробелы в строках</label> <button id="calcButton">Выполнить</button> <button id="clearButton">Очистить</button> </p> </div> <script> document.getElementById('calcButton').onclick = function (e) { //Кнопка Выполнить e.preventDefault(); let text = document.getElementById('srcText').value; let output = text.replace(/&/gu,'&').replace(/</gu,'<').replace(/>/gu,'>'); let dividor = '<br>\n'; output = output.replace(/\n{1,}/gu, dividor); if (document.getElementById('trimSpaces').checked) { let arr = output.split (dividor); let res = []; for (let i=0; i<arr.length; i++) { let s = arr[i].replace (/\s+/gu,' ').replace(/(^\s*)|(\s*)$/gu,''); if (s.length) res.push (s); } output = res.join(dividor); } document.getElementById('resHtml').value = output; }; document.getElementById('clearButton').onclick = function (e) { //Кнопка Очистить document.getElementById('srcText').value = document.getElementById('resHtml').value = ''; }; </script> <noscript> <div>Включите в браузере JavaScript для работы приложения!</div> </noscript>
02.04.2020, 22:34 [1226 просмотров]