Word Counter

Count words, Unicode grapheme characters, sentences, paragraphs, and lines without treating a multi-code-point emoji as several visible characters.

Words

0

Characters

0

No whitespace

0

Sentences

0

Paragraphs

0

Lines

0

Estimated reading time at 200 words/minute: 0 minutes

“Characters” means Unicode grapheme clusters—what people generally perceive as individual characters. Word and sentence boundaries can vary by language; the tool uses the browser’s Intl.Segmenter implementation when available.

What each count means

Words and sentences

The browser’s locale-sensitive segmenter identifies word-like and sentence segments. Punctuation, abbreviations, and language conventions can affect the result.

Characters

A character is counted as a Unicode grapheme cluster: a user-perceived unit such as a letter plus combining mark or a joined emoji sequence.

Reading estimate

The estimate divides the word count by 200 and rounds up to a whole minute. It is a disclosed planning assumption, not a measurement of an individual reader.

Metric reference

MetricRule used hereImportant boundary
WordsIntl.Segmenter word-like segmentsLocale-sensitive; not whitespace splitting
CharactersUnicode grapheme clustersMay contain several code points or UTF-16 code units
No whitespaceGrapheme clusters except whitespace-only clustersPunctuation and emoji remain included
SentencesIntl.Segmenter sentence segmentsAbbreviations and language conventions can vary
ParagraphsNon-empty blocks separated by blank linesA single newline changes the line count, not the paragraph count
LinesLine-feed boundaries after normalizing CRLF and CRAn empty input has zero lines

Controlled benchmark · September 15, 2026

20/20 deterministic text checks passed

Five owned fixtures exercise line alignment, Unicode-aware counting, separator placement, and the output-size guard. Every expected value and round-trip reconstruction matched.

5 checks

Leading-line insertion

Reconstructs both versions and verifies 1 added, 0 removed, 3 unchanged.

5 checks

Deletion plus replacement

Reconstructs both versions and verifies 1 added, 2 removed, 2 unchanged.

6 checks

Unicode segmentation

Checks words, grapheme clusters, non-whitespace graphemes, sentences, paragraphs, and lines.

3 checks

Separator placement

Checks exact output, repeat count, and UTF-8 byte size.

1 check

One-megabyte guard

Verifies oversized repeated output is rejected before the string is constructed.

Boundary: this benchmark verifies these deterministic fixtures in the current JavaScript runtime. It does not prove semantic equivalence, plagiarism detection, identical counts across every locale, or suitability for arbitrarily large documents.

Character, word, and sentence segmentation follows the browser’s Intl.Segmenter behavior when available, which implements locale-sensitive segmentation defined by ECMA-402 and informed by Unicode text-boundary rules.

FAQ

Word Counter