【发布时间】:2021-02-11 14:15:44
【问题描述】:
请考虑以下示例:
let string = '<h2>Some content here</h2><p>Foo Bar</p><h2>Different content here</h2>'
我想替换 <h2> 和 </h2> 之间的内容。
我尝试了以下方法:
string.replace(/<h2.*<\/h2>/, '<h2>xxyyzz</h2>');
但上述解决方案将string 转换为:
<h2>xxyyzz</h2>
预期结果:
'<h2>xxyyzz</h2><p>Foo Bar</p><h2>xxyyzz</h2>'
如何替换所有出现的两个子字符串之间的内容?
【问题讨论】:
-
您是否有理由不使用 DOM API 进行这些更改?默认情况下,量词是 greedy,即它们匹配 longest 子字符串。
-
@FelixKling 是的,算法会在服务器端运行,客户端不能做是有原因的。
-
Node.js 也有 HTML 解析器。只是需要考虑的事情,具体取决于输入的实际复杂程度。
标签: javascript html regex