Word & Character Counter

[ WORDS ]
17
85 characters · about 1 min read
Characters85
Sentences2
Paragraphs1
[ HOW LONG, EXACTLY ]
Characterswhat a person counts85
Characters without spaces69
Code unitswhat .length returns85
UTF-8 byteswhat a database column counts85
Unique words16
Lines1
Average word length3.9
Speaking time, minutesread aloud1
[ WHAT THIS IS ]

“How many characters” has three answers, and they only agree on plain English.

Characters are what a person counts. Code units are what JavaScript’s .length returns. Bytes are what a database column limit counts.

The peso sign is one character, one code unit and three bytes. An emoji is one character, two code units and four bytes.

So a form validating length with .length against a byte-limited column accepts text the database then refuses — and the failure lands nowhere near the form. That is why all three are shown.

[ QUESTIONS ]

Why are there three different character counts?

Because “how many characters” has three answers and they only agree on plain English. Characters are what a person counts. Code units are what JavaScript’s .length returns. Bytes are what a database column limit counts. The peso sign is one character, one code unit and three bytes; an emoji is one character, two code units and four bytes.

Why does that difference matter?

Because a form that validates length in code units against a byte-limited database column will accept text the database then refuses — and the failure appears nowhere near the form. If you are checking against a limit, check which unit the limit is in.

How is reading time worked out?

At 200 words a minute, which is a common estimate for an adult reading silently. Speaking time is shown separately at 130, because reading aloud is slower and it is a different question. Both are rough — the rate varies enormously with the material and the reader.

How does it count sentences?

By counting runs ending in a full stop, question mark or exclamation mark, plus a final run with no terminator. It is an estimate: an abbreviation ending in a full stop is counted as a sentence ending, and getting that exactly right needs a dictionary. It is reported as an estimate rather than presented as a fact.

What counts as a paragraph?

A run of text separated by a blank line. A single line break is a wrapped line, not a new paragraph, and treating every newline as a paragraph break gives a wildly inflated count on any text that was hard-wrapped.

Is my text sent anywhere?

No. Everything is counted in your browser and nothing is transmitted or stored.

[ THE MATHS ]
One character, three answers
a1 character · 1 code unit · 1 byte
ñ1 character · 1 code unit · 2 bytes
1 character · 1 code unit · 3 bytes
😀1 character · 2 code units · 4 bytes

Counting by code point is still not counting by character: it splits a family emoji into six. Intl.Segmenter is the right tool.

[ LINES AGAINST PARAGRAPHS ]

A paragraph is separated by a blank line, not by any line break. A wrapped line is not a new paragraph, and treating it as one gives a wildly inflated count on hard-wrapped text.

[ NEXT ]
49Text Case ConverterFor the case, once the length is right
55Text RedactorBefore you send what you just counted
48Text ComparisonWhen two versions should match and do not
58Slug GeneratorTurn a counted headline into a URL
[ IMPORTANT ]

Counted in your browser; nothing is transmitted. Sentence counts are an estimate — an abbreviation ending in a full stop is read as a sentence ending. Reading and speaking times are rough averages. Nothing you type here is sent to our servers — the calculation runs entirely in your browser.