Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как удалить HTML-теги из строки

Короткий ответ

Для простой разметки удалите всё между угловыми скобками:

const html = '<p>Hello, <b>world</b>!</p>';
 
console.log(html.replace(/<[^>]*>/g, ''));

Результат:

Hello, world!

В браузере: DOMParser

Браузер умеет разбирать HTML сам. Свойство textContent возвращает только текст, а сущности вроде &amp; превращаются в символы:

<script>
  const html = '<p>Tom &amp; <i>Jerry</i></p>';
  const doc = new DOMParser().parseFromString(html, 'text/html');
  document.body.append(doc.body.textContent); // Tom & Jerry
</script>

Частая ошибка

Удаление тегов не делает текст безопасным для вставки через innerHTML. Для этого экранируйте текст или используйте textContent. Кроме того, регулярное выражение оставляет сущности как есть:

console.log('<p>Tom &amp; Jerry</p>'.replace(/<[^>]*>/g, ''));

Результат:

Tom &amp; Jerry

Функции из этого ответа

  • String.prototype.replace — Заменяет первое совпадение (или все — с флагом g у регулярного выражения).

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.