2014-08-29 47 views
-4

所有文字比方说,我有一个字符串,如:正则表达式来捕捉除了某些标签

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

。 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2014-08-29 04:21:54

回答

0

我在RegExp上不够好,没有把这样的东西放在一起。然而,我会说to not parse HTML with RegExp

我建议你看看用XML解析器解析/过滤。你可以使用JS”本土DOM工具做你想要什么:

  1. container节点
  2. document fragment创建document fragment,删除你要过滤掉的节点
  3. 与更换original containerdocument fragment