Word boundaries are language-dependent, so splitting only on spaces miscounts scripts such as Chinese and Japanese. This counter uses Intl.Segmenter word, sentence, and grapheme boundaries when the browser provides them, then falls back to transparent whitespace and Unicode code-point rules.
Workflow
A short, inspectable path
- 01Type or paste text into the local textarea; counts update without a submit or network request.
- 02Read the segmentation method shown beneath the totals, especially for unspaced scripts.
- 03Use the destination’s own counting policy when a legal, editorial, or billing rule controls.
The counting rules
The word total counts Intl.Segmenter parts marked isWordLike. Character count uses grapheme clusters when available, keeping many joined emoji and combining-mark sequences together. Lines follow actual newline boundaries, while sentence segmentation follows the runtime locale-neutral segmenter.
When another total can be correct
For contracts, publishing systems, assignments, or localization limits, use the counting rule required by that destination. Two tools can legitimately disagree when they tokenize hyphens, contractions, ideographs, or emoji differently, so preserve the stated method with the result.
Local-data boundary
Typed and pasted text never leaves the textarea state. Counts are derived locally; the tool route loads no third-party analytics and emits no event containing text, snippets, language guesses, or exact length.
Limits worth keeping visible
- Automatic segmentation is a practical estimate, not a linguistic judgment; compounds, apostrophes, URLs, emoji sequences, and mixed-script text can follow different editorial rules.
- The fallback used by older browsers is less accurate for languages that do not place spaces between words, and the interface labels which method is active.
Reviewed references
- ECMAScript Internationalization API: Intl.Segmenter · checked 2026-07-20
- MDN: Using files from web applications · checked 2026-07-20