Я изменил ответ Jibberboy2000 , чтобы включить несколько форматов тегов
, удалить все внутри тегов и
, отформатировать полученный HTML, удалив несколько разрывов строк и пробелов и конвертировать некоторые HTML -кодированный код в нормальный. После некоторого тестирования кажется, что вы можете конвертировать большую часть полных веб-страниц в простой текст, где сохраняются заголовок и содержимое страницы.
В простом примере
This is my title
This string has html code i want to remove
In this line BBC with link is mentioned.
Now back to "normal text" and stuff using <html encoding>
становится
Это мой заголовок
Эта строка содержит html-код, который я хочу удалить
В этой строке BBC ( http://www.bbc .co.uk ) со ссылкой.
Теперь вернемся к «нормальному тексту» и т. д., используя
blockquote>Функция JavaScript и тестовая страница выглядят так :
function convertHtmlToText() { var inputText = document.getElementById("input").value; var returnText = "" + inputText; //-- remove BR tags and replace them with line break returnText=returnText.replace(/
/gi, "\n"); returnText=returnText.replace(/
/gi, "\n"); returnText=returnText.replace(/
/gi, "\n"); //-- remove P and A tags but preserve what's inside of them returnText=returnText.replace(//gi, "\n"); returnText=returnText.replace(/ (.*?)<\/a>/gi, " $2 ($1)"); //-- remove all inside SCRIPT and STYLE tags returnText=returnText.replace(/ [\w\W]{1,}(.*?)[\w\W]{1,}<\/script>/gi, ""); returnText=returnText.replace(/ [\w\W]{1,}(.*?)[\w\W]{1,}<\/style>/gi, ""); //-- remove all else returnText=returnText.replace(/<(?:.|\s)*?>/g, ""); //-- get rid of more than 2 multiple line breaks: returnText=returnText.replace(/(?:(?:\r\n|\r|\n)\s*){2,}/gim, "\n\n"); //-- get rid of more than 2 spaces: returnText = returnText.replace(/ +(?= )/g,''); //-- get rid of html-encoded characters: returnText=returnText.replace(/ /gi," "); returnText=returnText.replace(/&/gi,"&"); returnText=returnText.replace(/"/gi,'"'); returnText=returnText.replace(/</gi,'<'); returnText=returnText.replace(/>/gi,'>'); //-- return document.getElementById("output").value = returnText; } Он использовался с этим HTML: