我们说我有一个字符串,如:
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>
标记的修改方式。
答案 0 :(得分:0)
我在RegExp上做得不够好。不过,我会说to not parse HTML with RegExp。
我建议您查看使用XML解析器进行解析/过滤。您可以使用JS的本机DOM工具来执行您想要的操作:
container
节点document fragment
document fragment
内删除要过滤的节点original container
替换为document fragment