Skip to content

Конвертер регистра — UPPER, lower, camelCase и snake_case

Конвертируйте текст между UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE и ещё 6 форматами мгновенно. Бесплатно, только в браузере, без регистрации.

Без отслеживания Работает в браузере Бесплатно
Вся конверсия регистра происходит локально в вашем браузере. Никакие данные не отправляются на сервер.

Текстовые регистры

lowercase

Все буквы в нижнем регистре. Пробельные символы сохраняются.

hello world example

UPPERCASE

Все буквы в верхнем регистре. Пробельные символы сохраняются.

HELLO WORLD EXAMPLE

Title Case

Первая буква каждого слова капитализирована.

Hello World Example

Sentence case

Первая буква каждого предложения капитализирована.

Hello world example

iNVERSE cASE

Меняет верхний и нижний регистр местами для каждой буквы.

hELLO wORLD eXAMPLE

aLtErNaTiNg cAsE

Чередует нижний и верхний регистр по буквам.

hElLo WoRlD eXaMpLe

RaNdOm CaSe

Подбрасывание монеты независимо для каждой буквы.

HeLLo WorLd eXamPLe

Программистские регистры

camelCase

Первое слово в нижнем регистре, остальные капитализированы, без разделителей.

helloWorldExample

PascalCase

Каждое слово капитализировано, без разделителей.

HelloWorldExample

snake_case

Нижний регистр, соединение подчёркиваниями.

hello_world_example

kebab-case

Нижний регистр, соединение дефисами.

hello-world-example

CONSTANT_CASE

Верхний регистр, соединение подчёркиваниями.

HELLO_WORLD_EXAMPLE

dot.case

Нижний регистр, соединение точками.

hello.world.example

path/case

Нижний регистр, соединение прямыми слэшами.

hello/world/example

Header-Case

Каждое слово капитализировано, соединение дефисами.

Hello-World-Example
Проверено на паритет с lodash / change-case, корректность Unicode-соответствий регистров, стабильность хода акронимов туда-обратно и набор из семи текстовых и восьми программистских регистров. — Команда инженеров Go Tools · May 26, 2026

Что такое конвертер регистра?

Конвертер регистра — это небольшая утилита, которая берёт фрагмент текста и перерисовывает его в другом соглашении по регистру букв. Простейшие формы — UPPERCASE и lowercase — переводят каждую букву в один регистр. Более богатые формы применяют лингвистические правила (Title Case капитализирует первую букву каждого слова, Sentence case капитализирует первую букву каждого предложения) или правила программистского именования (camelCase соединяет слова, капитализируя каждое после первого; snake_case переводит всё в нижний регистр и соединяет подчёркиваниями). Онлайн-конвертеры регистра существуют столько же, сколько в вебе появились textarea, потому что сама конверсия механически проста, но утомительна вручную для любого нетривиального объёма текста.

Семейство текстовых регистров — это то, к чему тянутся писатели, редакторы, маркетологи и журналисты. UPPERCASE и lowercase полезны для соответствия стилю издания или для удаления крикливого ALL-CAPS из пересланного письма. Title Case — для заголовков и названий книг. Sentence case — современный веб-стандарт для основного текста, UI-микрокопирайтинга, надписей на кнопках и подписей — гайды по стилю Google, Apple и Microsoft за последнее десятилетие все сошлись на нём. Передразнивающие варианты (iNVERSE cASE, aLtErNaTiNg cAsE, RaNdOm CaSe) пришли из интернет-культуры, в частности из «spongebob meme», используемого для саркастического цитирования; alternating case — строгий детерминированный вариант, random case — хаотичный.

Семейство программистских регистров — это то, что разработчики используют каждый божий день. camelCase — стандарт для идентификаторов JavaScript, Java, Swift и Kotlin. PascalCase — стандарт для имён классов в большинстве объектно-ориентированных языков и имён компонентов в React, Vue и Angular. snake_case — стандарт для Python, Ruby, Rust и Elixir плюс большинства имён колонок баз данных. kebab-case — стандарт для имён CSS-классов, URL slug и HTML-атрибутов. CONSTANT_CASE — стандарт для переменных окружения, констант верхнего уровня и имён макросов. dot.case используется для пространств имён (Java-пакеты, пути полей MongoDB). path/case используется для URL и путей файловой системы. Header-Case — каноническое соглашение HTTP/1.1 для заголовков (Content-Type, Access-Control-Allow-Origin).

Под капотом интересная инженерия — это токенизатор, который разделяет входную строку на её семантические слова. Разделить по пробельным символам легко; сложная часть — распознать границы слов без пробельного разделителя. Стандартное соглашение — используемое lodash, npm-пакетом change-case, Python PEP 8 и большинством реальных кодовых баз — вставляет границу на трёх переходах: «строчная-заглавная» (parseHTML → parse / HTML), «заглавная-заглавная-строчная» (XMLHttpRequest → XML / Http / Request) и «буква-цифра» / «цифра-буква» (file2x → file / 2 / x). Плюс явные разделители: дефис, подчёркивание, точка, прямой и обратный слэши. С этим единым токенизатором вы можете вставить идентификатор в любом регистре — camelCase, snake_case, kebab-case, смешанном — и аккуратно сконвертировать в любой другой регистр без ручной зачистки.

Инструмент, которым вы пользуетесь, прогоняет токенизатор и все 15 преобразований полностью в вашем браузере на JavaScript. Ни сетевого вызова, ни сервера, ни логирования, ни cookie, которая записывала бы, что вы вводите. Вывод для каждого регистра обновляется на каждом нажатии клавиши без задержки debounce. Кнопка Copy на каждой карточке записывает в буфер обмена только этот один регистр. Re-shuffle перебрасывает random case, не трогая остальные выводы. Всё спроектировано под скорость реальной работы — вставил, просканировал, скопировал, вставил куда-то ещё.

Из смежного инструментария для работы с текстом счётчик слов обрабатывает метрики длины и времени чтения, сравнение текста построчно сравнивает два фрагмента, а тестер регулярных выражений проверяет совпадения шаблона с тестовым вводом. Вместе они покрывают большую часть работы по обработке текста, которую разработчик или контент-специалист делает в браузере.

// The tokenizer that powers every programming-case conversion
function tokenize(input) {
  return input
    .replace(/([a-z0-9])([A-Z])/g, '$1 $2')      // lower→upper: parseHTML → parse HTML
    .replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')   // acronym boundary: XMLHttp → XML Http
    .replace(/([A-Za-z])(\d)/g, '$1 $2')          // letter→digit: file2 → file 2
    .replace(/(\d)([A-Za-z])/g, '$1 $2')          // digit→letter: 2x → 2 x
    .replace(/[\s\-_./\\]+/g, ' ')                // collapse separators
    .split(' ').filter(Boolean);
}

// Then each case is a one-liner over the tokens
const camelCase  = (s) => tokenize(s).map((t, i) => i === 0 ? t.toLowerCase() : cap(t)).join('');
const snakeCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('_');
const kebabCase  = (s) => tokenize(s).map(t => t.toLowerCase()).join('-');
const PascalCase = (s) => tokenize(s).map(cap).join('');

function cap(t) {
  return t.charAt(0).toUpperCase() + t.slice(1).toLowerCase();
}

Ключевые возможности

Все 15 регистров видны одновременно

Вставьте ваш текст — и каждый регистр мгновенно отрисуется в двухколоночной сетке. Не нужно сначала выбирать формат или шагать по выпадающему списку — просканируйте сетку и скопируйте нужный. Текстовые регистры и программистские разнесены по отдельным секциям, чтобы вы могли найти правильную карточку одним взглядом.

Умный токенизатор для программистских регистров

Распознаёт границы «строчная-заглавная» (camelCase), «заглавная-заглавная-строчная» (XMLHttpRequest → XML/Http/Request), «буква-цифра» (file2x) и все распространённые разделители (-, _, ., /, \, пробельные символы). Совпадает с соглашениями lodash и npm-пакета change-case, поэтому вывод ходит туда-обратно так, как этого ожидают реальные кодовые базы.

Покарточная Copy с живой обратной связью

У каждой выходной карточки своя кнопка Copy — кликните один раз, и в буфер обмена попадёт только этот один регистр. Метка кратко переключается на «Скопировано!», чтобы вы знали, что сработало. Не нужно выделять текст или кликать правой кнопкой.

Обновления в реальном времени на каждом нажатии клавиши

Каждый регистр перерисовывается на каждом нажатии клавиши без задержки debounce. Никакой кнопки Convert, никакой перезагрузки страницы, никакого ожидания. Сделано под скорость реальной правки — вставил, просканировал, скопировал, готово.

Re-shuffle для Random Case

Вывод Random Case можно независимо перебрасывать кнопкой Re-shuffle, не трогая ни один другой вывод и входной текст. Полезно, когда нужен другой spongebob-meme-вариант для того же исходного текста.

Сохранение пробельных символов и пунктуации

Преобразования текстовых регистров (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) сохраняют каждый пробел, перевод строки и знак пунктуации по замыслу. Вставьте многоабзацный документ — и форматирование выживет нетронутым, изменится только регистр букв.

Учёт Unicode при соответствиях регистров

Использует методы `toLocaleLowerCase` и `toLocaleUpperCase`, учитывающие Intl, поэтому турецкие точечное/беспоточное İ/ı, немецкое ß, греческая конечная сигма и другие зависящие от локали случаи обрабатываются корректно. Токенизатор распознаёт буквы из любой письменности (Unicode \p{L}).

Приватность 100% в браузере

Вся конверсия выполняется локально в вашем браузере. Ваш текст никогда не загружается, не логируется, не сохраняется и не анализируется. Безопасно для ещё не объявленных названий продуктов, внутренних схем именования переменных, черновиков пресс-релизов и любых конфиденциальных материалов. Ноль сетевых запросов при вводе — проверить можно во вкладке Network в браузере.

Сохранение акронимов при ходе туда-обратно

Конвертируйте XMLHttpRequest → xml_http_request → XmlHttpRequest — и структура аккуратно ходит туда-обратно. То же соглашение, что в PEP 8 для Python и пакете change-case для JS, — никакого ручного побуквенного разделения при миграции кодовой базы между соглашениями по регистру.

Сравнение альтернатив конвертеров регистра

lodash (_.camelCase, _.snakeCase, _.kebabCase, _.startCase)

JavaScript-библиотека

Эталонная реализация для большинства JS-кодовых баз. Выдаёт идентичный вывод этому инструменту для распространённых случаев. lodash использует чуть другую обработку Unicode для крайних случаев. Используйте lodash в коде; используйте этот инструмент для разовых конверсий или быстрых точечных проверок во время рефакторинга.

npm-пакет change-case

JavaScript-библиотека

Модульная, поддающаяся tree-shaking библиотека конверсии регистра — одна функция на регистр. Токенизатор в этом инструменте точно совпадает с соглашением change-case v5+, поэтому выводы побайтово идентичны для ASCII-входов. Используйте change-case, когда хотите только camelCase или только snake_case в своём бандле; используйте этот инструмент для интерактивной конверсии.

Встроенные команды регистра VS Code

команда редактора

VS Code поставляется с командами `Transform to Uppercase`, `Transform to Lowercase` и `Transform to Title Case` (Cmd-Shift-P → поиск). Никаких camelCase, snake_case или других программистских регистров из коробки; расширения вроде «change-case» добавляют их. Лучше всего, когда ваш текст уже в редакторе; этот инструмент быстрее для конверсий через буфер обмена.

convertcase.net

браузерный инструмент

Оригинальный онлайн-конвертер регистра — только текстовые регистры (UPPERCASE, lowercase, Sentence, Title, alternating, inverse). Никаких программистских регистров. Существует с начала 2000-х и до сих пор остаётся топ-результатом по многим поискам текстовых регистров. Этот инструмент покрывает те же текстовые регистры и добавляет восемь программистских.

Change Case в Microsoft Word (Home > Change Case)

десктоп-приложение

У Word есть кнопка Change Case на ленте Home: Sentence case, lowercase, UPPERCASE, Capitalize Each Word, tOGGLE cASE. Никаких программистских регистров. Рабочий процесс требует находиться в Word с открытым файлом. Используйте Word, когда ваш текст уже в документе; используйте этот инструмент, когда вы во вкладке браузера.

Преобразования в Apple Pages / TextEdit

десктоп-приложение

В macOS Pages и TextEdit есть Edit > Transformations: Make Upper Case, Make Lower Case, Capitalize. Никаких camelCase, snake_case или других программистских вариантов. Быстро для короткого текста в этих приложениях; не предназначено для работы с идентификаторами кода.

Онлайн-конвертеры программистских регистров (например, camelcasse.com)

браузерный инструмент

Специализированные одно-регистровые конвертеры, сосредоточенные на одном преобразовании (только camelCase, только snake_case). Меньше регистров для сканирования, более сфокусированный UI. Этот инструмент показывает все 15 сразу, что быстрее для рефакторинга между несколькими регистрами — но если вам когда-либо нужен только один, одно-регистровый инструмент тоже подходит.

Примеры конверсии регистра

Тема письма в ALL-CAPS → Sentence Case

URGENT: PLEASE REVIEW THE Q4 BUDGET PROPOSAL BEFORE FRIDAY

Вывод Sentence case: «Urgent: please review the q4 budget proposal before friday» — мгновенно убирает крикливый all-caps тон для пересылки или вежливого ответа. Вывод Title Case: «Urgent: Please Review The Q4 Budget Proposal Before Friday» — если вы предпочитаете формально-заголовочный стиль. Оба варианта появляются одновременно; выберите тот, что подходит вашему ответу.

Переменная snake_case → camelCase

user_profile_image_url

Вывод camelCase: «userProfileImageUrl» — вставляйте напрямую в JavaScript, Java или Swift. PascalCase: «UserProfileImageUrl» — для имён свойств C# / .NET или имён React-компонентов. kebab-case: «user-profile-image-url» — для CSS-классов или URL slug. CONSTANT_CASE: «USER_PROFILE_IMAGE_URL» — для переменных окружения или констант верхнего уровня. Одна вставка, четыре готовых к использованию идентификатора.

Имя класса с акронимом (XMLHttpRequest)

XMLHttpRequest

Токенизатор распознаёт границу XML / Http / Request. Выводы: snake_case → «xml_http_request», kebab-case → «xml-http-request», CONSTANT_CASE → «XML_HTTP_REQUEST», Header-Case → «Xml-Http-Request». Это ровно то соглашение, которое используют lodash, пакет change-case и обработка акронимов в Python PEP 8, — рефакторинг с имени JS-класса на имя Python-модуля занимает одну вставку, а не ручное побуквенное разделение.

Заголовок страницы в URL slug (Title → kebab-case)

10 Tips for Faster JavaScript: A Complete Guide

Вывод kebab-case: «10-tips-for-faster-javascript-a-complete-guide» — URL-безопасный slug, который большинство CMS (WordPress, Ghost, Hugo) генерируют по умолчанию. snake_case: «10_tips_for_faster_javascript_a_complete_guide» — для соглашений об именах файлов. Токенизатор аккуратно убирает двоеточие и другую пунктуацию; не нужно предварительно чистить заголовок.

Имя HTTP-заголовка из camelCase (Header-Case)

accessControlAllowOrigin

Вывод Header-Case: «Access-Control-Allow-Origin» — точное написание, которое использует спецификация HTTP, готовое к вставке в options-объект fetch() или серверный ответ. kebab-case: «access-control-allow-origin» — та же каноническая форма в нижнем регистре (некоторые HTTP-библиотеки используют её внутри). Это самый быстрый способ перевести JS-свойство объекта в реальное имя заголовка.

Константа из человекочитаемой настройки (CONSTANT_CASE)

max retries per request

Вывод CONSTANT_CASE: «MAX_RETRIES_PER_REQUEST» — вставляйте в конфиг-файл как `const MAX_RETRIES_PER_REQUEST = 3` или в файл `.env` как `MAX_RETRIES_PER_REQUEST=3`. snake_case: «max_retries_per_request» — для констант уровня модуля в стиле Python или ключей YAML. Один источник, два назначения, никакой ручной правки.

Предложение в Spongebob-мем (aLtErNaTiNg cAsE)

this is fine, everything is going great

Вывод aLtErNaTiNg cAsE: «tHiS iS fInE, EvErYtHiNg iS gOiNg GrEaT» — канонический spongebob-формат передразнивания. Чередование — это глобальный переключатель по буквам, а не по словам, в соответствии с тем, что делают convertcase.net и другие мем-генераторы. RaNdOm CaSe: независимо переворачивает каждую букву — полезно, когда нужна та же саркастическая энергия с большим хаосом.

Как пользоваться конвертером регистра

  1. 1

    Вставьте или введите ваш текст

    Кликните в редактор и введите или вставьте любой текст — предложение, абзац, идентификатор, заголовок. Каждый вывод регистра обновляется мгновенно. Кликните Sample, чтобы загрузить репрезентативную фразу, если просто хочется увидеть, чем регистры отличаются.

  2. 2

    Просканируйте сетку

    Семь текстовых регистров (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) находятся в верхней секции. Восемь программистских регистров (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Header-Case) — в нижней. Каждая карточка показывает свою метку регистра, однострочное описание и сконвертированный вывод.

  3. 3

    Кликните Copy на нужном регистре

    У каждой выходной карточки своя маленькая кнопка Copy. Кликните один раз — регистр окажется в вашем буфере обмена, кнопка мигнёт «Скопировано!», и вы готовы вставить куда-то ещё. Не нужно сначала выделять выходной текст.

  4. 4

    Переключите random case, если нужно

    Если нужен другой вариант RaNdOm CaSe для того же текста, кликните Re-shuffle в строке действий. Меняется только вывод Random Case; входной текст и все остальные выводы остаются прежними.

  5. 5

    Очистите по готовности

    Кликните Clear, чтобы очистить редактор и сбросить каждый вывод. Sample перезагружает демо-текст. Все действия мгновенны и никогда не отправляются на сервер.

Распространённые ошибки конверсии регистра

Попытка прогнать целый абзац через snake_case

Вставка многословного предложения в вывод snake_case схлопывает его в один гигантский идентификатор — технически верный snake_case ввода, но никогда не то, что вам реально нужно от идентификатора. Используйте snake_case для одного идентификатора за раз (одно имя переменной или составное выражение). Для текстов длиной с абзац используйте преобразования текстовых регистров.

✗ Неверно
Ввод: «the quick brown fox jumps over the lazy dog»
Вывод snake_case: the_quick_brown_fox_jumps_over_the_lazy_dog
Результат: 50-символьный идентификатор, который никому не нужен.
✓ Верно
Ввод: «quickBrownFox»
Вывод snake_case: quick_brown_fox
Результат: чистый трёхтокенный идентификатор.

Ожидание правил Title Case по APA

Title Case в этом инструменте капитализирует каждое слово — `Hello A World Of Examples`, а не AP-стиль `Hello a World of Examples`. Гайды по стилю APA, Chicago и AP все оставляют в нижнем регистре короткие артикли и предлоги в заголовках. Если нужны конкретно заголовки в стиле APA, используйте специализированный title-case-инструмент. Для общей капитализации (капитализировать каждое слово) этот Title Case верен.

✗ Неверно
Ввод: «a tale of two cities»
Title Case этого инструмента: A Tale Of Two Cities
Ожидание (AP-стиль): A Tale of Two Cities
✓ Верно
Используйте этот инструмент для общей капитализации.
Используйте AP-стиль title-case-инструмент для редакторских заголовков.
Разные инструменты, разные соглашения.

Предположение, что ход PascalCase туда-обратно сохраняет капитализацию акронима

XMLHttpRequest токенизируется в XML / Http / Request и обратно собирается в PascalCase как XmlHttpRequest. Это соглашение (оно позволяет токенизатору аккуратно ходить туда-обратно), но если ваша кодовая база сохраняет капитализацию акронима (XMLHttpRequest остаётся как XMLHttpRequest), результат не совпадёт. Точечно проверьте перед переименованием в масштабах проекта.

✗ Неверно
Ввод: XMLHttpRequest
Вывод PascalCase: XmlHttpRequest
Ожидание (с сохранением акронима): XMLHttpRequest
✓ Верно
Принять title-cased акроним, ИЛИ
Вручную восстановить акроним после конверсии, ИЛИ
Использовать токенизатор, уважающий подсказки об акронимах.

Вставка URL и потеря слэшей

Вставка `https://example.com/api/users` в snake_case срезает все слэши и точки и выдаёт `https_example_com_api_users` — технически верно, но бесполезно как URL. URL уже находятся в формате path/case; не прогоняйте их через преобразования программистских регистров. Если нужно срезать протокол или хост из URL, сначала используйте инструмент для разбора URL.

✗ Неверно
Ввод: https://example.com/api/users
Вывод snake_case: https_example_com_api_users
Результат: уже не URL.
✓ Верно
Ввод: https://example.com/api/users
Оставьте URL в покое — они уже в правильном формате.
Для извлечения slug разберите путь URL вручную.

Путаница dot.case и нотации доступа к свойству через точку

Вывод dot.case — это `user.profile.image` — токены в нижнем регистре, соединённые буквальными точками, подходит для пространств имён (Java-пакеты, пути полей MongoDB, ключи TOML). Это не то же самое, что JavaScript-нотация доступа к свойству (`user.profile.image` выглядит идентично, но означает «свойство image объекта profile объекта user»). Если нужен путь доступа к свойству, dot.case случайно выдаёт правильную строку по совпадению; если нужен программистский идентификатор, используйте camelCase или snake_case.

✗ Неверно
Цель: «задать переменную user.profile.image»
Использование вывода dot.case как имени переменной: `user.profile.image`
В большинстве языков это доступ к свойству, а не идентификатор.
✓ Верно
Для одной переменной: userProfileImage (camelCase).
Для ключа с пространством имён: user.profile.image (dot.case верен).
Соответствуйте регистр целевому синтаксису.

Ожидание, что Sentence case обработает сокращения

Sentence case трактует каждую `.`, за которой идёт пробельный символ, как границу предложения, включая `Mr. Smith arrived.`, который становится `Mr. Smith arrived.` корректно, но `e.g. this example` становится `E.g. This example` (`g.` ошибочно трактуется как завершитель предложения). Ложные срабатывания на сокращениях — известное ограничение каждого распознавателя предложений на регулярных выражениях; для редакторской точности правьте вывод вручную.

✗ Неверно
Ввод: «e.g. this is an example. Read more.»
Вывод Sentence case: «E.g. This is an example. Read more.»
`g.` ошибочно расценено как завершитель предложения.
✓ Верно
Прогоните sentence case, затем поправьте вручную несколько крайних случаев с сокращениями.
Или перефразируйте, чтобы избежать точек внутри предложения.
(Распознавание предложений NLP-уровня — отдельная категория инструментов.)

Кто пользуется этим инструментом

Разработчики, переименовывающие идентификаторы между языками
Миграция JS-переменной в имя Python в snake_case, или CSS-класса в React-компонент в PascalCase, или переменной окружения в константу конфига. Вставьте имя источника один раз, скопируйте нужный вывод — никакой ручной побуквенной конверсии.
Бэкенд-разработчики, переводящие имена заголовков
У HTTP-заголовков вроде Content-Type, Access-Control-Allow-Origin, X-Forwarded-For есть специфические написания Header-Case. Вставьте имя свойства JS в camelCase, скопируйте каноническую форму заголовка — работает для options-объекта fetch(), серверного middleware и proxy-конфигов.
Писатели, убирающие ALL-CAPS тон из писем
Пересланные all-caps письма и сообщения в чате читаются как крик. Вставьте их в Sentence case, чтобы разрядить тон, или в Title Case, чтобы сохранить отполированно-заголовочное ощущение. Пробельные символы и пунктуация выживают нетронутыми.
Маркетологи, набрасывающие заголовки
Title Case для заголовков, Sentence case для основного текста и подписей — соглашение, которое рекомендуют большинство современных гайдов по стилю (AP, Google, Apple). Смотрите оба сразу, чтобы сравнить, какой подходит к месту размещения.
SEO-специалисты, генерирующие URL slug
kebab-case — соглашение URL slug, которое ожидает каждый CMS. Вставьте заголовок страницы с пунктуацией и капитализацией, скопируйте вывод kebab-case — готово к вставке в поле slug WordPress, Ghost или Hugo. Токенизатор аккуратно срезает пунктуацию.
DBA, именующие колонки и таблицы
snake_case для имён колонок и таблиц — универсальное соглашение в PostgreSQL, MySQL, SQLite и большинстве ORM. Вставьте человекочитаемую метку или имя API-поля в camelCase, скопируйте версию в snake_case.
Фронтенд-разработчики, оформляющие CSS-классы
kebab-case для имён классов — соглашение спецификации CSS (BEM, утилиты Tailwind и большинство дизайн-систем). Вставьте имя JS-компонента в camelCase, скопируйте версию kebab-case для соответствующего CSS-модуля.
Мем-мейкеры и любители сарказма
aLtErNaTiNg cAsE и RaNdOm CaSe — это spongebob-meme-форматы, используемые для саркастической пересмешки или цитирования. Re-shuffle перебрасывает случайный вариант, не меняя ввод — сгенерируйте несколько, пока один не ляжет правильно.

Правила токенизации и конверсии

Правила токенизации
Токены извлекаются вставкой пробела на четырёх границах: «строчная-заглавная» (parseHTML → parse HTML), «заглавная-заглавная-строчная» (XMLHttp → XML Http), «буква-цифра» (file2 → file 2) и «цифра-буква» (2x → 2 x). Затем распространённые разделители (пробельные символы, дефис, подчёркивание, точка, прямой и обратный слэши) схлопываются в одиночные пробелы. Получившиеся токены разделяются, обрезаются, пустые отбрасываются. Это совпадает с соглашениями lodash и пакета change-case.
Выводы программистских регистров срезают пунктуацию
camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case и Header-Case все производят чистые идентификаторы — пунктуация во входе (запятые, точки, скобки) отбрасывается, потому что не может появляться в идентификаторах большинства языков. Если нужно сохранить пунктуацию, используйте один из выводов текстовых регистров (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm).
Выводы текстовых регистров сохраняют всё
UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE cASE, aLtErNaTiNg cAsE и RaNdOm CaSe все сохраняют пробельные символы, переводы строк и пунктуацию. Вставьте многоабзацный документ — и структура выживет, изменится только регистр букв. Эти преобразования работают посимвольно, без токенизации.
Title Case (наивный вариант)
Title Case в этом инструменте капитализирует первую букву каждого разделённого пробелами слова и переводит остальное в нижний регистр. Гайды по стилю APA, Chicago и AP рекомендуют оставлять в нижнем регистре короткие артикли и предлоги (a, an, the, of, in, for); такие варианты достаточно отличаются, чтобы заслуживать отдельного инструмента. Используйте этот Title Case для общей капитализации; для AP-стиля заголовков используйте специализированный инструмент.
Распознавание границ Sentence case
Sentence case переводит всё в нижний регистр, затем капитализирует первую букву ввода и первую букву после любого завершителя предложения (. ! ? 。 ! ?), за которым идёт пробельный символ. Распознаватель не пытается разрешать неоднозначности сокращений вроде Mr. или U.S.A. — ложные срабатывания там шумнее, чем редкий пропуск.
Alternating Case использует глобальный переключатель
aLtErNaTiNg cAsE переключается между нижним и верхним регистром для каждой буквы, с глобальным переключателем, который переносится через границы слов. Небуквенные символы не сдвигают переключатель. Это совпадает с соглашением, используемым convertcase.net и другими мем-генераторами — предсказуемо и воспроизводимо для одного и того же ввода.
Random Case использует Math.random()
RaNdOm CaSe прогоняет независимое подбрасывание монеты на каждую букву, используя Math.random(). Каждый клик Re-shuffle даёт другой результат. Источник случайности не является криптографически стойким; этого достаточно для обиходного текста, но не используйте его для генерации паролей (для этого используйте специализированный генератор паролей).
Учёт Unicode и локали при соответствиях регистров
Использует `toLocaleLowerCase()` и `toLocaleUpperCase()`, поэтому турецкие точечное/беспоточное İ/ı, немецкое ß (в стандартной обработке переходит в SS) и другие зависящие от локали соответствия регистров обрабатываются корректно. Токенизация использует \p{L} для распознавания букв из любой письменности. Выводы программистских регистров по умолчанию ограничены ASCII-символами идентификатора для кросс-языковой совместимости.

Лучшие практики выбора регистра

Выбирайте регистр, который соответствует вашей кодовой базе
Правильный регистр для имени переменной — не самый красивый, а тот, который уже использует ваша кодовая база. JavaScript и Java: camelCase для переменных и методов, PascalCase для классов. Python, Ruby, Rust: snake_case для всего, кроме имён классов (которые PascalCase). CSS и URL: kebab-case. Переменные окружения и константы: CONSTANT_CASE. Соответствуйте локальному соглашению; консистентность важнее теоретической правильности.
Используйте Sentence case для UI-микрокопирайтинга
Дизайн-системы Google, Apple и Microsoft за последнее десятилетие все стандартизировались на Sentence case для надписей на кнопках, пунктов меню, текста диалогов и другого UI-микрокопирайтинга. Title Case в UI сегодня читается как старомодный и слегка крикливый. Сохраните Title Case для главных заголовков, названий страниц и названий книг.
Срезайте типографские кавычки перед вставкой
Вставка из Microsoft Word, Google Docs или Apple Notes может затянуть типографские кавычки («», „“), em-dash (—) и другие типографские символы, которые выглядят так же, как ASCII, но кодируются иначе. Преобразования регистра обрабатывают их корректно, но если вы конвертируете в программистский идентификатор, замените их вручную на ASCII-аналоги, чтобы избежать сюрпризов в редакторе кода.
Для программистских регистров конвертируйте по одному идентификатору за раз
camelCase, snake_case, kebab-case и т.д. производят единый идентификатор из всего ввода. Если вы вставите предложение в snake_case, получите один длинный идентификатор — технически верно, но редко то, что нужно. Для конверсии идентификаторов вставляйте по одному слову или составному слову за раз. Для текстов длиной с абзац используйте преобразования текстовых регистров.
Проверяйте ход акронимов туда-обратно перед рефакторингом
XMLHttpRequest → xml_http_request → XmlHttpRequest — стандартный ход туда-обратно; акроним становится title-cased на обратном пути. Если ваша кодовая база сохраняет исходную капитализацию акронима (XmlHttpRequest остаётся XMLHttpRequest), ход туда-обратно не совпадёт в точности. Точечно проверьте несколько конверсий перед переименованием в масштабах проекта.
Используйте Header-Case для HTTP/1.1, kebab-case для HTTP/2
HTTP/1.1 регистронезависим для имён заголовков, но Header-Case (Content-Type, X-Forwarded-For) — общепринятое человекочитаемое написание, которое использует каждый. HTTP/2 явно требует имена заголовков в нижнем регистре — используйте для этого kebab-case (content-type, x-forwarded-for). Когда сомневаетесь, kebab-case работает в обоих протоколах.
Перебрасывайте Random Case ради разнообразия, не ради безопасности
Random Case весело для мемов, но не случаен в криптографическом смысле — он использует Math.random(), что годится для визуального разнообразия, но не для всего, где важна случайность (генерация паролей, токены безопасности, A/B-тестирование). Для криптографической случайности используйте специализированный генератор паролей.

Часто задаваемые вопросы

Что делает конвертер регистра?
Конвертер регистра берёт фрагмент текста и перерисовывает его в другом регистре — UPPERCASE, lowercase, Title Case, Sentence case или одном из программистских регистров вроде camelCase, PascalCase, snake_case, kebab-case и CONSTANT_CASE. Этот инструмент показывает все 15 распространённых вариантов одновременно, поэтому вам не нужно выбирать конкретную конверсию перед вставкой; вы вставляете, сканируете сетку и копируете нужный. Всё работает полностью в браузере на JavaScript — без регистрации, без загрузки, без сетевого обращения и без аналитики на тексте, который вы вставляете.
В чём разница между camelCase, PascalCase и snake_case?
Все три — соглашения для именования многословных идентификаторов в коде. camelCase начинается со строчной буквы и капитализирует каждое последующее слово без разделителя: `userProfileImage`. PascalCase капитализирует каждое слово, включая первое: `UserProfileImage` — используется для имён классов в большинстве языков и имён компонентов в React. snake_case переводит всё в нижний регистр и соединяет слова подчёркиваниями: `user_profile_image` — соглашение для Python, Ruby, Rust и большинства имён колонок баз данных. kebab-case — та же идея с дефисами: `user-profile-image` — используется для имён CSS-классов, URL slug и HTML-атрибутов. CONSTANT_CASE — это верхний регистр с подчёркиваниями: `USER_PROFILE_IMAGE` — для констант и переменных окружения. Выбирайте тот, который соответствует существующему стилю вашей кодовой базы.
Как токенизатор обрабатывает акронимы вроде XMLHttpRequest или parseHTML?
Токенизатор распознаёт границу «заглавная-заглавная-строчная» (XMLHttp → XML / Http) и границу «строчная-заглавная» (parseHTML → parse / HTML). Поэтому `XMLHttpRequest` становится токенами `XML`, `Http`, `Request` и аккуратно конвертируется в `xml_http_request`, `xml-http-request`, `XML_HTTP_REQUEST` или `Xml-Http-Request`. Это совпадает с соглашением lodash, npm-пакета change-case и Python PEP 8 — фактическим стандартом обработки акронимов между языками. Один компромисс: при обратной конверсии в PascalCase акроним становится title-cased (`XMLHttpRequest` ходит туда-обратно в `XmlHttpRequest`), что также является стандартным соглашением во избежание неоднозначности при повторной токенизации.
Что такое Title Case против Sentence case?
Title Case капитализирует первую букву каждого слова, оставляя остальное в нижнем регистре: `Hello World Example`. Этот инструмент использует наивный вариант — капитализируется каждое слово — это и есть то, что большинство людей подразумевает под «title case» в обиходе. Некоторые гайды по стилю (APA, Chicago, AP) рекомендуют оставлять в нижнем регистре короткие артикли и предлоги вроде `a`, `an`, `the`, `of`, `in`, `for`; такие варианты достаточно отличаются, чтобы заслуживать отдельного инструмента для заголовков. Sentence case капитализирует только первую букву каждого предложения (и самую первую букву ввода): `Hello world example. This is a sentence.` Используйте Title Case для заголовков и названий книг, Sentence case — для описаний, подписей и основного текста.
Загружается ли мой текст куда-либо?
Нет. Каждое преобразование регистра выполняется на 100% в вашем браузере на JavaScript. Ваш текст никогда не передаётся, никогда не сохраняется ни на каком сервере, никогда не логируется и никогда не анализируется людьми или ИИ. Проверить можно во вкладке Network в браузере — ввод в редактор или клик по Copy не вызывают ни одного сетевого запроса. Это делает инструмент безопасным для ещё не объявленных названий продуктов, внутренних схем именования переменных, черновиков юридических текстов, журналистских заметок об источниках и любых других конфиденциальных материалов. Инструмент также не использует cookies для входного текста.
Как сконвертировать текст в camelCase из любого другого регистра?
Вставьте ваш текст в редактор выше и скопируйте выходную карточку camelCase. Работает из любого исходного формата: предложение с пробелами (`hello world` → `helloWorld`), snake_case (`hello_world` → `helloWorld`), kebab-case (`hello-world` → `helloWorld`), PascalCase (`HelloWorld` → `helloWorld`), CONSTANT_CASE (`HELLO_WORLD` → `helloWorld`) или даже смешанный с акронимом (`XMLHttpRequest` → `xmlHttpRequest`). Умный токенизатор распознаёт все распространённые границы автоматически, поэтому вам не нужно предварительно чистить ввод.
Поддерживает ли инструмент Unicode и нелатинские буквы?
Да. Преобразования регистра используют JavaScript-методы `toLocaleLowerCase()` и `toLocaleUpperCase()`, учитывающие Intl, — они корректно обрабатывают турецкие точечное/беспоточное `İ`/`ı`, немецкое `ß` (которое в стандартной обработке переходит в `SS`), греческую конечную сигму и другие зависящие от локали соответствия регистров. Токенизация использует Unicode-совместимые регулярные выражения, распознающие буквы из любой письменности (`\p{L}`). Для выводов программистских регистров (camelCase, snake_case и т.д.) токенизатор по умолчанию трактует как символы идентификатора только ASCII-буквы и цифры — что совпадает с ограничениями большинства языков программирования, — поэтому нелатинские буквы во входе проходят неизменёнными внутри токенов.
В чём разница между dot.case и path/case?
Оба — идентификаторы в нижнем регистре, соединённые разделителем — единственная разница в разделителе. `dot.case` использует точки: `hello.world.example`. Распространён для пространств имён (Java-пакеты, методы lodash, пути полей MongoDB) и ключей конфигурационных файлов (TOML, INI). `path/case` использует прямые слэши: `hello/world/example`. Это соглашение для URL-путей, путей файловой системы и Git-ссылок. Оба формируются из одной и той же токенизации, поэтому конверсия между ними — это просто замена разделителя. Используйте dot.case, когда идентификатор представляет иерархический ключ внутри данных; используйте path/case, когда он представляет литеральное местоположение.
Почему токенизатор разделяет на числах (file2x → file, 2, x)?
Числа как границы токенов — соглашение, которому следует большинство современных кодовых баз: `parseUTF8` должно ходить туда-обратно в `parse_utf_8` (или `parseUtf8` в PascalCase), а не `parseutf_8`. Токенизатор трактует каждый переход «буква-цифра» и «цифра-буква» как границу, поэтому `file2x` становится `file / 2 / x`. Если вы предпочитаете оставлять цифры приклеенными к предыдущим буквам, вставьте версию с ручной токенизацией (`file 2x` с буквальным пробелом) — и токенизатор уважит пробел. Это соглашение совпадает с пакетом change-case и PEP 8 для Python.
Чем alternating case отличается от random case?
Alternating case (aLtErNaTiNg cAsE) детерминированно переключается между строчным и заглавным регистром — каждая нечётная буква в верхнем регистре, каждая чётная в нижнем, независимо от границ слов. Результат одинаков каждый раз для одного и того же ввода. Random case (RaNdOm CaSe) независимо переворачивает каждую букву подбрасыванием монеты, поэтому каждая вставка даёт другой результат. Кликните Re-shuffle, чтобы перебросить случайный вывод, не очищая редактор. Оба — форматы передразнивающего текста (так называемый «spongebob meme»); alternating — строгий вариант, random — хаотичный. Другие выводы регистра Re-shuffle не затрагивает.
Конвертирует ли это имена HTTP-заголовков?
Да — используйте вывод Header-Case. Он капитализирует каждый токен и соединяет их дефисами, выдавая канонические написания HTTP-заголовков вроде `Content-Type`, `Access-Control-Allow-Origin` и `X-Forwarded-For`. Вставьте имя свойства JS в camelCase (`accessControlAllowOrigin`) — и вы получите точное написание заголовка, которое использует спецификация HTTP/1.1, готовое к вставке в options-объект `fetch()` или серверный ответ. Учтите, что HTTP/2 предпочитает имена заголовков в нижнем регистре (используйте для этого варианта kebab-case); HTTP/1.1 регистронезависим, но написание Header-Case — общепринятая человекочитаемая форма.
Можно ли сконвертировать целый абзац сразу?
Да — для преобразований текстовых регистров (UPPERCASE, lowercase, Title Case, Sentence case, iNVERSE, aLtErNaTiNg, RaNdOm) инструмент сохраняет все пробельные символы, переводы строк и пунктуацию по замыслу, поэтому вы можете вставить целый абзац или даже многостраничный документ. Преобразования программистских регистров (camelCase, snake_case и т.д.) намеренно срезают пунктуацию, поскольку производят идентификаторы; вставка абзаца в camelCase сожмёт его в один гигантский идентификатор — технически верное преобразование, но редко полезное. Для текстов длиной с документ используйте только выводы текстовых регистров; для конверсии идентификаторов вставляйте по одному идентификатору за раз.
Насколько это точно по сравнению с lodash, change-case или другими библиотеками регистров?
Токенизатор и преобразования регистра выдают побайтово идентичный вывод с npm-пакетом change-case (`change-case` v5+) для всех распространённых входов — та же обработка акронимов, то же правило «число как граница», то же распознавание Unicode-букв. У lodash `_.camelCase`, `_.snakeCase`, `_.kebabCase` и `_.startCase` чуть другой токенизатор (он разделяет по большему числу символов и трактует некоторые Unicode-классы иначе), но для ASCII-входов выводы совпадают в распространённых случаях. Title Case в этом инструменте — наивный вариант (капитализируется каждое слово); `_.startCase` в lodash делает то же самое. Если вам нужны правила title-case APA или Chicago (короткие предлоги в нижнем регистре), используйте специализированную title-case-библиотеку — этот инструмент оптимизирован под тот регистр, который ищет большинство пользователей.
Почему есть и Sentence case, и Title Case, если они похожи?
Они расходятся, как только во входе больше одного слова. Sentence case переводит всё в нижний регистр и капитализирует только первую букву каждого предложения: `hello world. this is a sentence.` становится `Hello world. This is a sentence.` Title Case капитализирует каждое слово: `Hello World. This Is A Sentence.` Sentence case — соглашение для основного текста, подписей и UI-микрокопирайтинга в большинстве современных гайдов по стилю (Google, Microsoft, Apple). Title Case — соглашение для заголовков, названий страниц, названий книг и заголовков диалоговых окон в классической типографике. Современный веб-стиль всё чаще предпочитает Sentence case для всего, кроме главных заголовков.

Похожие инструменты

Все инструменты →

Бесплатный тестер regex — отладка совпадений онлайн

Работа с текстом

Тестируйте регулярные выражения мгновенно на любом тексте. Подсветка совпадений, группы захвата, предпросмотр замены, разбиение и пояснение. Regex в стиле JavaScript, бесплатно, конфиденциально, без регистрации.

Сравнение текста и Diff

Работа с текстом

Сравните два текста мгновенно в браузере. Просмотр бок о бок, подсветка слов, экспорт unified diff, опции игнорирования регистра/пробелов/пустых строк. 100 % в браузере — без загрузки.

Бесплатный счётчик слов и символов

Работа с текстом

Подсчитывайте слова, символы, предложения, абзацы и время чтения мгновенно. Счётчик слов в реальном времени с проверкой лимитов Twitter, meta description и Instagram. Бесплатно, приватно, без регистрации.

Конвертер систем счисления — bin, hex, dec, oct

Конвертеры

Конвертация между системами счисления — двоичной, hex, десятичной, восьмеричной и любой базой 2-36 мгновенно. Бесплатно, приватно — вся обработка в браузере.

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

Генератор crontab и конструктор cron-выражений

Дата и время

Создавайте, проверяйте и расшифровывайте cron-выражения в браузере. Предпросмотр запусков в локальном времени или UTC. POSIX 5 полей, пресеты, описание простым языком. Бесплатно и приватно.