我正在寻找JavaScript正则表达式解决方案,以删除未闭合的标签,例如:
我正在使用JavaScript replace函数将所有匹配项替换为“”,我的模式旨在匹配仅未关闭的标签,有关该模式的内容:
如果
<div></div><span>
您可以看到,我想要删除<span>
元素。我知道在标记上使用正则表达式是一个不好的做法,但这对我的项目是必需的。这是我制作的正则表达式模式,但它没有起作用:
/<([a-z]+?)>([\s\S]*?)(?!<\/\1>)/g
我正在使用JavaScript replace函数将所有匹配项替换为“”,我的模式旨在匹配仅未关闭的标签,有关该模式的内容:
[a-z]
我知道HTML标记可以包含=,",etc
,所以我正在寻找一个简单的模式,以便我可以进行编辑,因此我从[a-z]
开始。- 我使用了
!?
来拒绝关闭标记的匹配。
我知道我的模式不起作用,如果有人有想法,我将非常感激。
编辑:
我知道可能存在递归,如果这是情况,我希望删除所有递归树,我只想保留1个级别的HTML,例如:
<div><span></span></div><p></p>
如果
<div>
标签后面不是 </div>
,则将其删除。
<div><span></span></div><p></p>
,这是完全有效的HTML代码,你要把它变成<div></div><p></p>
? - dtyler