本文介绍利用JavaScript递归函数过滤HTML字符串中特定注释标记间内容的实现方法。通过定义开始与结束标记,递归查找并移除中间子串,直至无匹配项。示例展示了如何清理包含多个标记块的混合字符串,适用于前端数据清洗场景。
JavaScript递归过滤HTML注释内容实现
代码示例如下所示:
function DeleteHtmlFromStartToEnd(str, begin, end) {
str = str.replace(begin + end, "");
if (str.indexOf(begin) == -1) {//未找到匹配项
return str;
}
var substr = str.substring(str.indexOf(begin) + begin.length, str.indexOf(end));
str = str.replace(substr, "");
return DeleteHtmlFromStartToEnd(str, begin, end);
}
var str = '00000<!--deleteBegin-->1234567<!--deleteEnd-->111111<!--deleteBegin-->890<!--deleteEnd-->22222<!--deleteBegin-->890<!--deleteEnd--><!--deleteBegin-->890<!--deleteEnd-->3';
var result = DeleteHtmlFromStartToEnd(str, '<!--deleteBegin-->', '<!--deleteEnd-->');
alert(result);