Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Alphabet | а-я, А-Я, ё, Ё — the 33 letters of the Russian alphabet in both cases |
|---|---|
| Unicode range | U+0400–U+04FF covers all of Cyrillic, but only the Russian-alphabet subset is used here |
| Not counted as a letter | Digits, spaces, punctuation, Latin letters, emoji |
| Case | Uppercase and lowercase letters count equally, case does not affect the total |
| Other Cyrillic alphabets | Ukrainian і, ї, є, ґ and Kazakh қ, ә, ғ and other non-Russian letters are not counted |
| Speed | Recalculates on every keystroke, no delay, text never leaves the browser |
When it misleads you
- The tool only matches letters of the Russian alphabet using the pattern [а-яёА-ЯЁ]. Letters from other Cyrillic-script languages — Ukrainian і, ї, є, ґ, Belarusian ў, Kazakh қ, ә, ғ, ө, ұ, і, һ, ң — are excluded from the count even though they technically belong to the Cyrillic Unicode range U+0400–U+04FF.
- Mixed words are counted partially: in "Wi-Fi-роутер" only the letters in "роутер" are counted, while "Wi-Fi" falls into "other characters" along with the hyphens.
- The hard and soft signs (ъ, ь) are counted as letters like any other — from this tool's point of view they are full alphabet characters, even though they don't represent a sound of their own.
- The letter ё is often replaced with е in everyday text. The tool counts exactly what's written: if a text uses "е" everywhere instead of "ё", that neither improves nor reduces accuracy — letters are counted as-is, with no normalization.
How it is calculated
The text is checked character by character against the regular expression [а-яёА-ЯЁ], which lists exactly the 33 letters of the Russian alphabet in lower and upper case. Every match increases the counter by one.
The Cyrillic share is the number of Cyrillic letters divided by the total text length (every character, including spaces and punctuation), multiplied by 100.
"Other characters" is everything that did not match the Cyrillic pattern: digits, punctuation, spaces, Latin letters, characters from other alphabets and emoji. It is computed as the total length minus the Cyrillic letter count.
Counting operates on JavaScript string code points, so rare composite characters (for example, letters combined with a separate diacritic mark) may not be counted the way you'd expect — this does not occur in ordinary Russian text.
Questions and answers
Are the hard and soft signs counted?
Yes, ъ and ь are counted as full letters of the alphabet, just like the other 31 letters.
Why aren't Ukrainian letters і and ї counted?
The tool is scoped to the 33-letter Russian alphabet specifically. Ukrainian, Belarusian and Kazakh Cyrillic letters that aren't part of the Russian alphabet are excluded, even though they formally belong to the Cyrillic Unicode range.
Does letter case matter?
No, uppercase and lowercase letters are counted the same way — "А" and "а" contribute equally to the total.
What falls into "other characters"?
Everything that isn't a Russian-alphabet letter: digits, spaces, punctuation, Latin letters, letters from other Cyrillic-script languages, and emoji.
Is my text sent anywhere?
No. The whole count runs in your browser; the text is never transmitted anywhere.