Введение строки в DOM, как вы показали, является самым простым и надежным способом сделать это. Если вы работаете со строкой, вам нужно будет принять во внимание все возможные сценарии побега, из-за которых выглядит как тег на самом деле не будет тегом.
Например, вы могли бы иметь
<button value="<em>"/>
<button value="</em>"/>
в вашей разметке - если вы рассматриваете ее как строку, вы можете подумать, что у вас есть тег <em>
, но на самом деле у вас есть только два тега кнопки.
Внедряя в DOM через innerHTML
, вы пользуетесь встроенным в браузер HTML-парсером, который чертовски быстр. Делать то же самое с помощью регулярных выражений было бы больно, и браузеры обычно не предоставляют DOM-подобную функциональность для поиска элементов в строках.
Еще одна вещь, которую вы можете попробовать, - это синтаксический анализ строки как XML, но я подозреваю, что это будет более хлопотно и медленнее, чем метод внедрения DOM.