【问题标题】:RegEx to capture all text except certain tags正则表达式捕获除某些标签以外的所有文本
【发布时间】:2014-08-29 03:55:35
【问题描述】:

假设我有一个字符串,例如:

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>.

我正在寻找不属于选定标签子集的所有文本。在此示例中,仅&lt;foo&gt; 和 &lt;bar&gt; 标记。我不希望能够用一个正则表达式来做到这一点,我需要一些 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>.

注意&lt;baz&gt; 标签是如何被修改的。

【问题讨论】:

标签: javascript regex


【解决方案1】:

我在 RegExp 方面还不够好,无法组合这样的东西。不过,我会说to not parse HTML with RegExp。

我建议您查看使用 XML 解析器进行解析/过滤。你可以使用 JS 的原生 DOM 工具来做你想做的事:

  1. 从您的container 节点创建一个document fragment
  2. 在document fragment 中,删除要过滤掉的节点
  3. 将original container 替换为您的document fragment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-22
    • 2012-12-20
    • 1970-01-01
    • 2011-02-23
    • 2011-05-15
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多