🔧 TL3 Tools

Live demo (works without JavaScript):

Live stats for: Sample input — paste anything and watch the result update.

Characters (with spaces): 58
Characters (no spaces): 51
Words: 10
Sentences (approx.): 2
Lines: 1

📝 Character Counter

Written by Sarah Mitchell · Reviewed by Alex Chen · July 20, 2026

Real-time text statistics with social media character limit indicators.

Input

Statistics

Type or paste text to see statistics.

Social Media Limits

Type or paste text to see social media limit checks.

Letter Frequency

Type or paste text to see letter frequency.

A Drafted Post, Counted by Hand

Type this sentence into the box:

Hello, world! This is a test post.

The character row reads 34, which is 25 letters, 6 spaces, a comma, an exclamation point, and a period. Removing whitespace drops the count to 28. The word row reads 7, because the text splits into seven whitespace-separated tokens. The sentence row reads 2, and the exclamation point is why: the counter treats ., !, and ? as boundaries, so "Hello, world!" closes one sentence and "This is a test post." closes another.

The limits panel compares the same 34 characters against each cap. Against X/Twitter's 280 the bar fills to 12%, well under the 60% threshold, so it renders green with a "Within limit" label. Against a 160-character SMS segment the bar sits at 21%, and against Instagram's 2,200-character caption cap it is a sliver.

What the Counter Reports

The Character Counter reads whatever sits in the textarea and returns a table of nine statistics, a letter-frequency grid, and four platform checks. The stats panel covers characters with and without spaces, words, lines, sentences, paragraphs, spaces, digits, and alphabetic letters. The frequency grid shows how often each of the 26 letters appears, and the limits panel compares the current length against the caps for X/Twitter, Instagram captions, SMS, and Facebook posts. Every value refreshes on each keystroke, so the numbers track the text as you edit.

Reading the Social Media Limit Bars

Four rows list X/Twitter at 280, Instagram captions at 2,200, a single SMS segment at 160, and Facebook posts at 63,206. Each row draws a bar whose width is the current length as a percentage of that cap, capped at 100%. A bar under 60% is green, 60% to 85% is amber, and anything over 85% turns red. When the length passes a cap, the status flips from "Within limit" to "Over by N" with the exact excess.

The numbers are the standard limits as published for 2026, and platform policies do change, so treat the bars as a first check rather than a guarantee. Note that Instagram truncates captions with a "… more" link after roughly 125 characters, so a post can be within the cap and still cut off in the feed.

Fitting a Headline into an SMS Segment

Take a typical push-notification headline:

Flash sale: free shipping on all orders this weekend.

That string is 53 characters: 43 letters, 8 spaces, a colon, and a period. Removing whitespace brings the count to 45, and the word row reads 9. Against the 160-character SMS segment cap, 53 out of 160 fills the bar to 33%, which renders green. The same headline leaves the Instagram bar at 2% of its 2,200-character budget, so the panel makes it obvious at a glance which channel is tight and which is not.

How Each Statistic Is Computed

Characters with spaces is the raw JavaScript length of the string. Characters without spaces removes every whitespace character first, so tabs and newlines vanish along with spaces. Words come from trimming the text and splitting on runs of whitespace. Lines come from splitting on the newline character, which means a single-line paragraph counts as one line. Paragraphs split on blank lines, so two blocks separated by an empty line count as two. Letters only counts a through z, ignoring case and accents, and digits only counts 0 through 9.

A Two-Line Draft, Measured Twice

Paste this two-line draft:

line one
line two

The character row reads 17: eight characters on the first line, the newline, and eight on the second. Removing whitespace leaves 14, the letters on both lines. The word row reads 4 and the lines row 2. Sentences reads 1, not 2, because the split only breaks on punctuation and this draft carries none, so the whole two-line block counts as a single sentence. Paragraphs reads 1 as well, spaces 2, letters 14, and digits 0. Against the 280-character X/Twitter cap, 17 characters fill the bar to just 6%.

The draft is also a good test of the paragraph row: splitting on blank lines leaves the whole block as one paragraph even though the lines row shows two. Add an empty row between the lines and the figures flip to two paragraphs and three lines while the sentence total stays at one.

What the Counter Misses: Emoji and Graphemes

JavaScript length counts UTF-16 code units, not the glyphs a reader sees. A family emoji of three people joined by zero-width characters measures 8 units even though it renders as one symbol, and a skin-tone modifier adds to the count as well. Most platforms count the same way internally, so the number usually matches what a character-limited field reports, but a display that counts visible glyphs will disagree. Accented letters such as é count as one character each, while a letter plus a combining accent can count as two.

Character Counter FAQ

Why do the with-spaces and no-spaces counts differ?

The no-spaces figure strips every whitespace character, including tabs and newlines, so the difference between the two rows is exactly the amount of whitespace in the text.

What makes the sentence count jump?

Every period, exclamation point, or question mark ends a sentence, so abbreviations like "Dr." or "e.g." create extra boundaries and inflate the total on formal prose.

Does the frequency grid include uppercase letters?

The grid lowercases the text first, then counts a through z, so "Hello" and "hello" both add to the h and e rows. Each bar is twice its letter's share of the alphabetic characters, with a small minimum so single letters stay visible.

How close to a cap counts as close?

The color thresholds are 60% and 85%. A bar that crosses 85% turns red, which is a practical warning for an X post where every character above 280 is rejected.

Is my text uploaded?

The counting happens in the page itself, with no request made to a server.

When the Counter Is the Right Tool

Use it while drafting anything that lands in a length-limited field, when checking a manuscript for sentence density, or when a form silently rejects long input. Skip it when the count must respect what users see rather than code units, since a glyph-aware tool is needed for emoji-heavy copy, and skip it when the whole document belongs in a desktop editor with its own counters.