Конвертер регистра

Конвертируйте текст между camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, Title Case и другими. Все 13 форматов обновляются в реальном времени по мере ввода.

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

Соглашения об именовании и где они применяются

Как работает разбиение

Прежде чем что-то переформатировать, ввод нужно разбить на слова. Этот инструмент вставляет границу там, где строчная буква сменяется прописной, где заканчивается аббревиатура и начинается новое слово (так HTTPServer превращается в HTTP + Server), а также в каждой последовательности небуквенно-цифровых символов. Результат — нейтральный список слов, который можно соединить в любом стиле, то есть можно вставить snake_case и сразу получить корректный camelCase без промежуточных шагов.

Основные соглашения

  • camelCase — переменные JavaScript и Java, ключи JSON в большинстве веб-API.
  • PascalCase — имена классов и типов в C#, Java, TypeScript; имена компонентов React.
  • snake_case — переменные и функции Python и Ruby, имена столбцов PostgreSQL.
  • CONSTANT_CASE — константы времени компиляции и переменные окружения почти в любом языке.
  • kebab-case — URL-слаги, имена CSS-классов, HTML-атрибуты, имена npm-пакетов.
  • dot.case — ключи конфигурации, ключи i18n-переводов, имена пакетов Java.
  • Title Case — заголовки и подписи интерфейса.

Почему важна согласованность

Смешанные соглашения в одной кодовой базе стоят реального времени. user_id в базе данных, userId на слое API и UserID в модели означают, что на каждой границе нужно отображение, и в каждом отображении может скрываться ошибка. Большинство команд выбирают одно соглашение на слой и явно конвертируют на границах.

Работа с Unicode

Разбиение слов использует классы символов с учётом Unicode, поэтому латиница с диакритикой, греческий и кириллические буквы трактуются как буквы, а не разделители. Письменности без регистра, такие как китайский и японский, проходят без изменений, поскольку к ним неприменим верхний или нижний регистр.

Примечание с открытым исходным кодом: разбиение и форматирование слов реализованы на нативных JavaScript-регулярных выражениях с поддержкой Unicode. Сторонние библиотеки не используются.

Частые вопросы

Можно ли вставить текст уже в camelCase?
Да. Разбиение распознаёт «горбы» camelCase и границы аббревиатур, поэтому любой входной стиль корректно конвертируется в любой выходной без промежуточного шага.
Как обрабатываются аббревиатуры?
Последовательность заглавных, за которой следует заглавная и строчная, разбивается перед последней заглавной, поэтому 'parseHTTPResponse' превращается в parse + HTTP + Response, а не в один длинный токен.
В чём разница между Title Case и Sentence case?
Title Case делает заглавной каждое слово. Sentence case делает заглавной только первое слово и переводит остальные в нижний регистр, как пишется обычное предложение.
Работает ли это с китайским или японским текстом?
В этих письменностях нет регистра букв, поэтому символы проходят без изменений. Форматы на основе разделителей, такие как kebab-case, всё равно вставят разделители на пробелах и пунктуации.
Сохраняются ли пунктуация и цифры?
Цифры сохраняются и трактуются как часть слова. Пунктуация служит границей слова и удаляется из итогового текста, поскольку ни одно из целевых соглашений её не допускает.
Мой текст куда-либо загружается?
Нет. Всё работает в браузере, поэтому ничего из вставленного не покидает ваше устройство.