Profanity Remover

Scrub offensive language from any text - mask it with a character or delete it, right in your browser.

Profanity Remover

This tool detects profanity and its disguises in your text.
Paste or type your text in the "Input" field, pick a mode and options, and press "Remove Profanity".
The filtered result appears in the "Output" field.


Load an example

1. Mode & filtering
mask character (default *)
Deletes the word and tidies leftover spaces
On by default: "ass" won't match "class"
2. Custom bad words
These join the built-in list and are checked with the same smart matching
Ready to filter profanity.


Overview

The "Profanity Remover" tool is a free utility that finds offensive or vulgar words in any text and either masks them with a replacement character or deletes them entirely. Paste a paragraph, a comment thread, or a user-generated review, choose a mode, and the cleaned version appears instantly in the output field - ready to copy or download.

Unlike a simple word search, this tool recognizes the ways people disguise profanity. It normalizes text before matching, so it catches leetspeak ("sh1t"), letter repetitions ("shiiit"), character substitutions ("bullsh!t"), and mixed case. A whole-word mode (on by default) protects innocent words like "pass" or "class" from being mangled by a match on "ass".

Everything runs locally in your browser with JavaScript, so your text never leaves your device and nothing is uploaded or stored. The tool is free, needs no account, and works on any modern browser - handy for forum moderators, community managers, and anyone who needs to keep content family-friendly.


What This Tool Does

The tool scans your text and runs it against a built-in list of common English profanity, plus any custom words you add. In "Replace with character" mode, each detected word becomes a mask of your chosen symbol (the default is *), so "sh1t" becomes "****". In "Remove completely" mode, the offending word is deleted and any leftover double spaces are tidied into a single space.

Because the matcher normalizes the text before comparing, obfuscations that would beat a plain word search are caught too: leetspeak ("4ss" for "ass"), repeated letters ("fuckkk"), common substitutions ("a$$" or "bullsh!t"), and mixed casing. Matching is case-insensitive, so "Damn", "DAMN" and "damn" are all caught the same way. Turn off "Whole word only" to remove or mask a term even when it appears inside a longer word.


Examples

Every example below loads its own text and options - click "Try it" to see the result in the "Output" field right away.

1. Mask disguised profanity (replace)

Detect leetspeak and substitution disguises, then mask each detected word with *.

Input
Hey man, this is a total load of sh1t. I can't believe you forgot the tickets. What a bunch of bullsh!t that was.
Output
Hey man, this is a total load of ****. I can't believe you forgot the tickets. What a bunch of ******** that was.

2. Remove profanity entirely

Delete the offensive words completely and tidy up the leftover spaces so the sentence stays readable.

Input
Stop being a bloody fool and quit that crap right now. This is a damn disaster.
Output
Stop being a fool and quit that right now. This is a disaster.

3. Clean text stays untouched

Wholesome text with no profanity passes through unchanged - useful to confirm a draft is forum-safe.

Input
Great job on the presentation, seriously. The client loved the walkthrough, and the follow-up is already scheduled. We nailed it.
Output
Great job on the presentation, seriously. The client loved the walkthrough, and the follow-up is already scheduled. We nailed it.

Features & Options

Input & Output: Type or paste your text in the "Input" field; the filtered result appears in the "Output" field, ready to copy or download.

Replace with character (default): Masks each detected word with your chosen symbol so the text keeps its shape. The default is *, but you can type any short string. For example, "sh1t" becomes "****" when the replace character is *.

Remove completely: Deletes the offending words from the text and tidies up the leftover double spaces so the sentence stays readable.

Custom bad words: Type your own words (comma or newline separated) to extend the built-in list - handy for industry terms, names, or words in another language. Custom words are also checked with the same smart matching.

Whole word only (on by default): Only matches complete words, so "ass" won't touch "class" or "massage". Turn it off to mask a term even when it appears inside a longer word.

Live mode (on by default): The output updates as you type or change any option - no need to press "Remove Profanity". Turn it off to only process when you click the button.


When to Use This Tool?

Moderate user comments, reviews, or forum posts before publishing them, so the conversation stays civil and family-friendly.

Sanitize community or live-chat content that must comply with a platform's community guidelines before it goes live.

Clean up student writing, workshop submissions, or name lists as an easy first pass - then review the output to confirm the tone is right.

Pre-check a draft for accidental strong language before it's shared where a slip of the tongue could be embarrassing.


FAQs

FAQ 1: What is the difference between the two modes?
Answer: "Replace with character" masks each bad word with a symbol (the default is *) so the text keeps its original length and rhythm. "Remove completely" deletes the word and cleans up the leftover spaces, so the sentence reads more like natural speech.

FAQ 2: Does it really catch words like "sh1t" or "a$$"?
Answer: Yes. The matcher normalizes both the word list and the text, so common obfuscations - leetspeak like "4ss", letter substitutions like "a$$", repeated letters like "shiiit", and mixed casing - are all caught automatically.

FAQ 3: Why did my legitimate word get changed?
Answer: With "Whole word only" on (the default) this should not happen, because only complete words are matched. If a real word still gets flagged, it is likely a false positive on a term that shares letters with the built-in list - you can avoid it by keeping the filter in whole-word mode.

FAQ 4: How do I add my own words?
Answer: Type them in the "Custom bad words" box, separated by commas or one per line. They are added to the built-in list and checked with the same smart matching, so they catch disguised versions too.

FAQ 5: Does this tool change my original text?
Answer: No. The "Input" field is never modified; only the copy in the "Output" field reflects the filtered result and your chosen options.

FAQ 6: Is my text private?
Answer: Yes. The tool runs entirely in your browser with JavaScript. Your text is never uploaded to or stored on our servers.

TextToolz

The Ultimate Text Tools

TextToolz works seamlessly to let you convert and design your text. It is fast, reliable and secure. Trusted by thousands of users.