【发布时间】:2021-01-05 03:38:32
【问题描述】:
我有一个 HTML 字符串,例如:
<p>
<strong><em>Lorem Ipsum </em></strong>is simply dummy text of the printing <em>and</em> typesetting industry.
</p>
我想把它转换成一个 JavaScript 数组,如下所示:
['<p>', '<strong>', '<em>', 'Lorem Ipsum ', '</em>', '</strong>', 'is simply dummy text of the printing ', '<em>', 'and', '</em>', 'typesetting industry.', '</p>']
即它接受 HTML 字符串并将其分解为一组标签和 HTML 内容。
我已尝试按照this 问题使用DomParser():
const str = `<p><strong><em>Lorem Ipsum </em></strong>is simply dummy text of the printing <em>and</em> typesetting industry.</p>`;
const doc = new DOMParser().parseFromString(str, 'text/html');
const arr = [...doc.body.childNodes]
.map(child => child.outerHTML || child.textContent);
但是,这只是返回:
['<p><strong><em>Lorem Ipsum </em></strong>is simply dummy text of the printing <em>and</em> typesetting industry.</p>']
我也尝试搜索各种基于正则表达式的解决方案,但无法找到任何能完全按照我的要求分解字符串的解决方案。
有什么建议吗?
谢谢
【问题讨论】:
-
重点是什么?如果您使用
const frag = document.createElement('div'); frag.innerHTML = thatString;创建一个div,那么您可以从该frag获取元素。
标签: javascript html domparser