Показать сообщение отдельно
  #3 (permalink)  
Старый 10.09.2023, 17:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Так а что в конечной строке то должно быть? \n или <br>
Если <br>, то сначала заменяешь < и > на &lt; и &gt, а потом \n на <br>.
И только сначала & заменить на &amp; а потом уже все остальное
<!DOCTYPE HTML>
 
<html>
 
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
 
<body>
<p id="p"></p>
 <script>
	function escapeHTML(text) {
		return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/\n/g, '<br>');
	}

    let str = `asd
    asd <jopa></jopa> <h1></h1>`;
    
    let json = JSON.stringify(escapeHTML(str));
    let txt = JSON.parse(json);
    p.innerHTML = txt;
 </script>
</body>
 
</html>

Последний раз редактировалось voraa, 10.09.2023 в 17:47.
Ответить с цитированием