Как удалить HTML-теги из строки
Короткий ответ
Для простой разметки удалите всё между угловыми скобками:
const html = '<p>Hello, <b>world</b>!</p>';
console.log(html.replace(/<[^>]*>/g, ''));Результат:
Hello, world!В браузере: DOMParser
Браузер умеет разбирать HTML сам. Свойство textContent возвращает только текст, а сущности вроде & превращаются в символы:
<script>
const html = '<p>Tom & <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 & Jerry</p>'.replace(/<[^>]*>/g, ''));Результат:
Tom & JerryФункции из этого ответа
- String.prototype.replace — Заменяет первое совпадение (или все — с флагом g у регулярного выражения).