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>."

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

最佳答案

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

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>."

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>."

关于javascript - 将缺失的标签动态添加到损坏的 HTML 字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41915184/

相关文章:

javascript - 当对象键存在于javascript中另一个对象的数组中时重构对象数据

javascript - jQuery 切换();

html - h1 :hover is responding on the whole width, 无法链接 h1 并且不知道如何单独定位事物

javascript - 如何切换选中所有复选框

javascript - 文本区域中的文本选择大写

javascript - 如何在react.js中隐藏我的源代码?

javascript - 单击菜单外部 div 时菜单导航接近

html - 当内部有 2 个或更多组件时,为什么我的 Angular 应用程序无法正确设置背景?

html - 使图像像 Stackexchange 的网站一样流动

javascript - Node 中带有 Mongoose 和 Promise 的奇怪异步行为