Счётчик символов
Подсчёт символов в реальном времени, с пробелами и без, размер в байтах, и насколько вы близки к типичным лимитам платформ вроде твитов и мета-описаний.
Типичные лимиты
Как это работает
При каждом нажатии клавиши страница пересчитывает три значения. Количество символов — это .length в JavaScript, которое считает единицы кода UTF-16. Подсчёт без пробелов сначала удаляет все пробельные символы (пробелы, табуляции, переносы строк) с помощью регулярного выражения. Размер в байтах пропускает ваш текст через API TextEncoder браузера, который выдаёт реальные байты UTF-8, которые текст займёт в файле, столбце базы данных или теле HTTP-запроса. Список лимитов платформ — это просто вычитание относительно каждого лимита, переключающееся на стиль «превышено» в момент, когда вы его пересекаете.
Разрыв между этими числами — вот где люди попадают впросак. Эмодзи вроде улыбающегося лица — это один видимый символ, но две единицы кода UTF-16 (поэтому здесь, как и на многих платформах, он считается за 2 символа) и четыре байта UTF-8. Что касается SMS, лимит в 160 символов предполагает, что сообщение остаётся в рамках старого алфавита GSM-7: добавьте один эмодзи или изогнутую "умную" кавычку — и оператор незаметно переключает всё сообщение на кодировку UCS-2, снижая лимит на сегмент до 70 символов. Если правка одного символа вдруг разбила ваш текст на два SMS-сегмента, вот почему.
Подсчёт происходит полностью в JavaScript этой страницы. Откройте вкладку «Сеть» в инструментах разработчика во время набора текста: вы увидите ноль запросов, потому что ваш текст никогда не покидает браузер.