使用JS / Jquery .replace()替换text / html的多行块

时间:2014-03-14 13:15:23

标签: javascript jquery html regex

我正在开发一个项目,我需要从文件中提取HTML块,调整提取的HTML,然后用更新的HTML替换文件中的HTML。我目前能够提取我想要的HTML块,但我无法在HTML文件中替换它们。我现在主要在JS / Jquery工作,我还没有把文件写出来,这不在这个问题的范围内。

我尝试将HTML块转储到变量中并按照以下方式使用它:

var removeThis = containerCopy.find('.keepMe, #showAlerts').remove().end().html(); var changed = containerMarkup.replace("/"+removeThis+"/gm", "<div>Replaced</div>");

我也试过了正则表达式格式化。

var changed = containerMarkup.replace(removeThis, "<div>Replaced</div>");

我尝试过使用正则表达式替换白色空格&amp;换行符,也可以转义提取的块中的特殊字符。初始块。然后运行替换。这仍然没有奏效。

以上是我通过其他SO帖子找到的所有选项,但我仍然无法让替换工作。您可以在this Fiddle中查看基本细分。任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:0)

我强烈建议使用解析器来解释您的标记。这应该比使用正则表达式等更容易和更安全地遍历和操作其内容。

以下是来自SO的随机示例: Parse a HTML String with JS

请注意,jQuery是可选的。

答案 1 :(得分:0)

仅仅是:

$('body').children().not('.keepMe, #showAlerts').remove();

See jsFiddle