RegEx捕获除某些标记之外的所有文本

时间:2014-08-29 03:55:36

标签: javascript regex

我们说我有一个字符串,如:

Lorem ipsum dolor sit amet, <foo attr="something">consectetur adipisicing elit</foo>, sed do eiusmod <bar>tempor incididunt</bar> ut labore et dolore <baz>magna aliqua</baz>.

我希望获得所有不属于所选标签子集的文字。在此示例中,仅<foo><bar>个标记。我不希望能用一个正则表达式做到这一点,我需要一些JS代码,让我操作那些特定标签之外的文本,然后重新构成整个字符串,修改。

例如,让我们说我想用*替换所有字母a。所需的输出是:

Lorem ipsum dolor sit *met, <foo attr="something">consectetur
*dipisicing elit</foo>, sed do eiusmod <bar>tempor incididunt</bar> ut l*bore et dolore <b*z>magn* *liqu*</b*z>.

请注意<baz>标记的修改方式。

1 个答案:

答案 0 :(得分:0)

我在RegExp上做得不够好。不过,我会说to not parse HTML with RegExp

我建议您查看使用XML解析器进行解析/过滤。您可以使用JS的本机DOM工具来执行您想要的操作:

  1. container节点
  2. 创建document fragment
  3. document fragment内删除要过滤的节点
  4. original container替换为document fragment