Detection is whole-word matching. A configured ass matches in ass!, but not
inside classic or assessment:
detector.check("classic assessment"); // false
detector.check("ass!"); // trueLetters, combining marks, and numbers belong to a word. Punctuation, whitespace, apostrophes, hyphens, and underscores are boundaries. Input and dictionary entries use NFC normalization followed by lowercase casing.
findAll() scans the complete input, returns matches in source order, and
keeps repeated occurrences. Match start and end are UTF-16 offsets into the
original string. filter() replaces only matched spans and preserves all other
text.
check() exits as soon as it finds a match; isClean() is its readable
inverse. Both are closure-backed and safe as callbacks:
comments.filter(detector.isClean);Scope
Profanity Kit is a profanity detection toolkit, not a complete content moderation system. It intentionally does not provide phrase matching, substring matching, aggressive leetspeak expansion, or contextual moderation. Create a detector with the configuration you need and apply human and product-specific moderation policy around its results.