Count words and characters, convert between naming conventions, compare texts, test regular expressions and preview Markdown.
7 tools in this category.
Count words, sentences and paragraphs, with reading time, speaking time and keyword frequency.
Count characters against the limits that matter — SEO titles, meta descriptions, X, SMS — with correct emoji handling.
Convert between twelve naming conventions — camelCase, snake_case, kebab-case, Title Case and more.
Turn titles into clean URL slugs, with proper transliteration of accented characters.
Compare two texts and see exactly what changed — unified line diff, or word and character level.
Test JavaScript regular expressions live, inspect every capture group, and preview replacements.
Render Markdown to formatted HTML live, with GFM tables and task lists, and XSS-sanitised output.
Seven tools for working on text itself. Some are everyday utilities — the Word Counter and Character Counter for copy that has to fit a limit, the Case Converter for moving identifiers between camelCase, snake_case, kebab-case and PascalCase, the Slug Generator for URL-safe strings. Others are debugging instruments: the Text Diff Checker for finding what actually changed between two versions, and the Regex Tester for the pattern you are certain is right and demonstrably is not.
Character counting is less obvious than it looks, and the difference has consequences. A "character" can mean a UTF-16 code unit, a Unicode code point, or a grapheme cluster — what a reader would call one character. An emoji with a skin-tone modifier is one grapheme, two code points and four UTF-16 units. That is why a bio that looks well within a limit gets rejected: the platform counted differently. Knowing which count a field enforces is usually the whole problem.
The Regex Tester matches as you type and shows captures, which turns pattern debugging from guesswork into observation. It is worth remembering the one thing regex should not be used for: parsing nested structures. HTML, JSON and source code are recursive, and regular expressions by definition cannot track arbitrary nesting. A pattern that appears to work on your sample will fail on the first deeply nested case.