Например, эта html строка:
Lorem <b>ipsum</b> dolor <span class="abc">sit</span> amet,<br/>consectetur <input value="ok"/> adipiscing elit.
в этот массив:
[
'Lorem ',
'<b>ipsum</b>',
' dolor ',
'<span class="abc">sit</span>',
' amet,',
'<br/>',
'consectetur ',
'<input value="ok"/>',
'adipiscing elit.'
]
Вот пример html совпадения элементов:
const pattern = /<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)<\/\1>|<([A-Z][A-Z0-9]*).*?\/>/gi;
let html = 'Lorem <b>ipsum</b> dolor <span class="abc">sit</span> amet,<br/>consectetur <input value="ok"/> adipiscing elit.'
let nodes = html.match(pattern);
console.log(nodes)
Как также добавить текстовые узлы?