Поместите строку в <template>
.
Свойство content
шаблона возвращает DocumentFragment
, которое, в свою очередь, имеет свойство childElementCount
Обратите внимание, что вы также можете вставить DocumentFragment
в любой другой элемент, используя такие методы, как element.appendChild(fragment)
const isHTML = (str) => {
const temp = document.createElement('template');
temp.innerHTML = str;
return !!temp.content.childElementCount;
}
const strs = [
'no html <> string',
'some html in <span>string</span>',
'<div>All html <span>string</span</div>'
]
strs.forEach(s => console.log(s, '<-- is html =', isHTML(s)))
Примечание <template>
не поддерживается в более старых версиях IE