Word and character counter

Paste or type any text to see live counts for words, characters (with and without spaces), sentences, paragraphs, and lines. Estimated reading and speaking times use words-per-minute rates you can change. Counting prefers Intl.Segmenter for your language, with grapheme-aware character totals so emoji and combining marks count as one character each. Nothing you type is uploaded or stored.

Word and character counter

How to use the word counter

  1. Type or paste text in the box. Stats update as you type (large pastes are debounced so the page stays responsive).
  2. Adjust reading and speaking words-per-minute if your audience differs from the defaults (200 and 130).
  3. Optionally set a character limit, including verified SMS segment presets, and watch the remaining count.
  4. Scan the top repeated words list (case-insensitive, no stop-word filter).
  5. Use Clear, Reset, or Copy stats when you finish. Your text never leaves this browser.

How words and characters are counted

When Intl.Segmenter is available, words use word segmentation for the active locale, sentences use sentence segmentation, and characters use grapheme clusters.

Text is normalized with Unicode NFC before counting so composed and decomposed accents match.

Zero-width format characters (such as ZWSP or ZWJ) are excluded from character totals so invisible marks do not inflate the count.

Characters without spaces skip whitespace graphemes. Paragraphs are non-empty blocks separated by blank lines. Lines follow newline breaks in the text box.

Reading and speaking times are ceil(words ÷ WPM × 60) seconds. Defaults are 200 WPM reading and 130 WPM speaking; both are editable between 60 and 400.

If Segmenter is missing, the tool falls back to Unicode-aware regular expressions for words and punctuation-based sentence splits, and code-point iteration for characters.

words=Segmenter(word); chars=graphemes-ZW; time=ceil(words/WPM*60)s

Worked example

Sample: "Hello world. This is a short sample for the word counter tool."

Expect about 12 words, 2 sentences, 1 paragraph, and 1 line, with character totals that include spaces but exclude zero-width marks.

At 200 WPM reading, twelve words need only a few seconds. Lower the speaking WPM to see a longer spoken estimate.

Turn on the SMS GSM 160 preset to see how many characters remain under a documented single-segment limit.

Frequently asked questions

Why do emoji count as one character?

Character totals use grapheme clusters from Intl.Segmenter when available, so a single emoji or accented letter counts as one user-perceived character.

Which character limits are available?

Only limits with a documented source and verification date ship as presets. Today that means SMS segments from 3GPP TS 23.040 (160 GSM and 70 UCS-2). You can still type any custom limit.

Does the tool remove stop words from the repeated list?

No. Repeated words are ranked by raw frequency after case folding for the active locale.

Will a huge paste freeze the page?

Large text is debounced before analysis. Counting stays on the main thread but is paced so everyday pastes stay usable; a 200,000-character case is covered in automated tests.

Is my text sent to a server?

No. All counting runs locally in your browser and is not stored by Numbrixiya.

How should I treat Arabic, Urdu, Hindi, or Vietnamese?

The input uses dir=auto, counting uses your locale's Segmenter rules when available, and NFC normalization keeps combining marks consistent. Results still depend on browser Unicode support.

Disclaimer

This tool provides estimates only and is not financial, medical, or legal advice.