跳到主要内容
uencoder

如何Remove HTML Tags 从 Text

去除 HTML markup to get plain text, preserving content and handling entities.

问题

你有 HTML 内容和 need plain 文本无 任何 tags 或 markup.

前置条件

  • Understanding 的 HTML 结构
  • Knowledge 的 HTML entities

步骤

  1. 1. Parse the HTML

    Use an HTML parser rather than a regex to strip tags. A parser correctly handles nested tags, attributes with > characters, and self-closing tags. Regex-based stripping can fail on edge cases like <script> blocks or attribute values containing >.

    输入
    <p>Hello <b>world</b></p>
    输出
    parsed structure
  2. 2. Extract text content

    Walk the parsed DOM and collect text nodes. Skip script and style elements whose content is not visible text. Handle <br> as line breaks and <p> as paragraph breaks. The result is the visible text content.

    输入
    <p>Hello <b>world</b></p>
    输出
    Hello world
  3. 3. Decode HTML entities

    After stripping tags, decode HTML entities (&amp; → &, &lt; → <, &#39; → ', &nbsp; → space). This recovers the original characters that were escaped in the HTML. Use a standard entity decoder for the full named and numeric entity set.

    输入
    &amp; &lt; &#39;
    输出
    & < '

预期结果

Plain 文本具有所有 HTML tags removed 和 entities decoded.

常见错误

Using regex to strip tags fails on edge cases
Use a proper HTML parser. Regex cannot correctly handle nested tags, attributes with >, or CDATA sections.
Script content appears in output
Explicitly skip <script> and <style> elements when extracting text. Their content is code, not visible text.

排障指引

  • If entities appear as literal text, run an entity decoder after stripping.
  • If whitespace is wrong, normalize spaces and line breaks after extraction.

安全限制

  • Stripping HTML tags prevents XSS in display contexts, but always also sanitize any remaining text for safe output.

相关工具

参考链接