在nodejs中替换非自闭的br或img标签

时间:2014-01-15 21:32:47

标签: javascript regex node.js

问题与Close all HTML unclosed IMG tags中的问题相同,但提供的正则表达式(<img[^>]+)(?<!/)>需要后备支持 - nodejs没有。

如何在nodejs中获得相同的结果?

源HTML由另一个应用程序生成。

2 个答案:

答案 0 :(得分:3)

稍微更改正则表达式:

/(<img[^>]*[^\/>])>/

或另一种方式(最可能更慢):

/(<img(?:(?!\/>)[^>])+)>/

我尝试不将至少1个字符的假设更改为>,即<img>将不会与您的正则表达式/(<img[^>]+)(?<!\/)>/匹配,也不会与我上面建议的正则表达式匹配。< / p>

如果您希望<img>与正则表达式匹配(以便您可以修改它):

/(<img(?:[^>]*[^\/>])?)>/

答案 1 :(得分:2)

您可以将该正则表达式重组为匹配相同但不使用lookbehind的表达式:

/(<img(?:[^>\/]|\/(?!>))+)>/

然而,请注意,这是RegEx match open tags except XHTML self-contained tags的近似重复,你的答案应该是: - )