JavaScript で HTML タグを取り除くには

jQuery を使う

jQuery が使える環境であれば簡単です。

$(`<div>${"タグを含む文字列"}</div>`).text()

とすればタグを取り除けます。
なので、

import $ from 'jquery';

const html = `
<div>
<span>テスト</span>
<div>
<span>何をしているか<a href="https://kuma-emon.com/it/pc/1931/" target="_blank">詳細はこちら</a></span>
</div>
</div>
`;

console.log($(`<div>${html}</div>`).text());

としたときのコンソール出力は


テスト

何をしているか詳細はこちら

となります。

※ img など、更にリソースを取得するタグの場合は、そのリソースの読み込みはされるので、先に別途対処した方が良いかも。

サーバーサイドでやりたいときは

サーバーサイドの場合、jsdom でDOMを用意します。

import { JSDOM } from 'jsdom';
import jquery from 'jquery';

const dom = new JSDOM('<html><body></body></html>');
const $ = jquery(dom.window);

const html = `
<div>
<span>テスト</span>
<div>
<span>何をしているか<a href="https://kuma-emon.com/it/pc/1931/" target="_blank">詳細はこちら</a></span>
</div>
</div>
`;

console.log($(`<div>${html}</div>`).text());

コメント