2014-08-29 71 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