动态地将缺少的标签添加到损坏的HTML字符串中

时间:2017-01-28 21:46:14

标签: 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>."

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

1 个答案:

答案 0 :(得分:7)

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

&#13;
&#13;
var str = "This <small>is <i>ONE</small> Messed up string</i>.";
str = new DOMParser().parseFromString(str, "text/html").body.innerHTML;
console.log(str);//"This <small>is <i>ONE</i></small><i> Messed up string</i>."
&#13;
&#13;
&#13;

&#13;
&#13;
var str = "This <small>is <i>ONE</small> Messed up string</i>.";
var el = document.implementation.createHTMLDocument().createElement('div');
el.innerHTML = str;
str = el.innerHTML;
console.log(str);//"This <small>is <i>ONE</i></small><i> Messed up string</i>."
&#13;
&#13;
&#13;