Javascript 动态地向断开的HTML字符串添加缺少的标记

Javascript 动态地向断开的HTML字符串添加缺少的标记,javascript,html,Javascript,Html,我有一个坏的HTML字符串。我需要搜索字符串并在JavaScript中添加任何缺少的开始或结束标记。没有正则表达式,没有jQuery。例如,我想制作如下字符串: "This <small>is <i>ONE</small> Messed up string</i>." "This <small>is <i>ONE</i></small><i> Messed up string</i

我有一个坏的HTML字符串。我需要搜索字符串并在JavaScript中添加任何缺少的开始或结束标记。没有正则表达式,没有jQuery。例如,我想制作如下字符串:

"This <small>is <i>ONE</small> Messed up string</i>."
"This <small>is <i>ONE</i></small><i> Messed up string</i>."
“这是一个混乱的字符串。”
有这样适当的形式:

"This <small>is <i>ONE</small> Messed up string</i>."
"This <small>is <i>ONE</i></small><i> Messed up string</i>."
“这是一个混乱的字符串。”

基本上,第一个
元素的子元素。因此,我需要确保正确放置结束标记,并为错误放置的原始结束标记添加另一个开始标记。

解析字符串,然后再次序列化它。有多种方法可以做到这一点

var str=“这是一个乱七八糟的字符串。”;
str=newdomparser().parseFromString(str,“text/html”).body.innerHTML;

console.log(str)//“这是一个乱七八糟的字符串。”
谢谢你的回答。我会接受这一点,但对于没有domparser的无头浏览器,有什么解决方案呢?@jmcgui05那么你可以使用
document.createElement('div').innerHTML
作为解析器,但前提是你信任字符串,因为恶意的浏览器可以执行任意脚本。在普通Javascript中,你会怎么做,没有使用Dom解析器?@jmcgui05 Dom解析器是纯JavaScript。您也可以在沙盒文档中的元素上使用
innerHTML
。对不起,我想问的是,没有浏览器我怎么做。DOMParser和innerHTML都使用浏览器no?如果我想在没有浏览器帮助的情况下在代码中执行此操作,该怎么办?