Remove HTML tags

Turns HTML into plain readable text, dropping scripts, styles and markup.

Paste HTML — a source view, an email body, an export from a CMS — and press the button. You get the text a reader would see, without the markup.

Not a regular expression

The usual approach is to delete everything between angle brackets with a pattern. It half works, and the half that does not causes real problems. The contents of <script> and <style> blocks are not tags, so they survive — meaning your "plain text" contains JavaScript and CSS rules. HTML entities like &amp; and &nbsp; stay in their encoded form. An angle bracket inside an attribute value throws the whole thing off.

This tool parses the HTML the way a browser does and takes the resulting text. Entities are decoded to real characters, script and style contents are dropped before parsing, and structure is preserved as line breaks rather than everything collapsing into one paragraph.

The parsing is done in an isolated element that is never attached to the page, so nothing in your HTML can run. Scripts and event handlers are discarded rather than executed, and no external resources are requested — worth knowing if you are pasting HTML from a source you do not fully trust.

Uses

Markdown, not HTML?

If your text is full of **bold**, # headings and [links](url) rather than tags, that is Markdown — the format most AI assistants reply in — and the second button handles it. It removes the formatting characters while keeping the words, and optionally keeps the URLs from links in brackets. Running the HTML stripper on Markdown does nothing, since there are no tags to remove.

Doing it without this tool

Word: paste as unformatted text (Ctrl+Shift+V). Works for rendered content copied from a browser, not for raw source.

Excel: nothing built in. SUBSTITUTE chains cannot express "anything between angle brackets".

Notepad++: Find & Replace in regex mode with <[^>]*> — the classic approach, with all the script, style and entity problems described above.

Command line: lynx -dump -stdin or pandoc -f html -t plain, both of which parse properly and produce good results if they are installed.

Try:
0Words
0Characters
0No spaces
0Sentences
0Paragraphs
0Lines
0Pages
0Reading
0Speaking

Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.

How to use it

  1. Paste your HTML into the box.
  2. Press "Strip HTML tags".
  3. If your text uses Markdown rather than tags, press "Strip Markdown instead".
  4. Copy the plain text or download it.

Related tools

Extract phone numbersFinds phone numbers in any text and lists them, one per line.PDF to textPulls the text out of a PDF without uploading the file anywhere.Extract numbersPulls every number out of a block of text, and can total them for you.Extract emailsPulls every email address out of a block of text and removes duplicates.Title case vs sentence caseThree style guides, three different answers, and the four-letter rule that…What is a URL slugThree to five words, lowercase, hyphens, no dates. And why changing it later…Cursive textHandwriting-style letters you can paste anywhere plain text goes.

See all text tools →

Frequently asked questions

Does it remove JavaScript and CSS?

Yes. Script and style blocks are dropped entirely before parsing, so their contents do not end up in your text — which is the main failure of the usual regular expression approach.

Are HTML entities decoded?

Yes. &amp;amp; becomes &, &amp;nbsp; becomes a space, and named and numeric entities are converted to the characters they represent.

Is it safe to paste HTML from an untrusted source?

Yes. Parsing happens in an element that is never added to the page, so scripts and event handlers are discarded rather than run, and no external resources are requested.

Does it keep paragraphs and line breaks?

Block-level structure is preserved as line breaks so the result stays readable, and runs of blank lines are collapsed rather than left as large gaps.

What if my text is Markdown, not HTML?

Use the "Strip Markdown instead" button. It removes heading marks, emphasis, code ticks and link syntax while keeping the words.