Menu
Русский

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

Преобразуйте текст в camelCase, snake_case, kebab-case и другие форматы.

Последнее обновление

Ввод4 слов
ВыводЩёлкните по значению, чтобы скопировать
  • camelCasehelloWorldFromCoddy
  • PascalCaseHelloWorldFromCoddy
  • snake_casehello_world_from_coddy
  • CONSTANT_CASEHELLO_WORLD_FROM_CODDY
  • kebab-casehello-world-from-coddy
  • Train-CaseHello-World-From-Coddy
  • dot.casehello.world.from.coddy
  • path/casehello/world/from/coddy
  • Регистр предложенийHello world from coddy
  • Регистр заголовкаHello World From Coddy
  • ВЕРХНИЙ РЕГИСТРHELLO WORLD FROM CODDY
  • нижний регистрhello world from coddy

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

Конвертер регистров берёт фразу или идентификатор и переписывает его во всех ходовых стилях именования: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case и так далее. Разработчики тянутся к нему постоянно: при рефакторинге имён переменных, генерации названий колонок в БД, оформлении полей API под чужой style guide или превращении пользовательского текста в URL-slug.

У каждой экосистемы свои привычки. JavaScript и Java любят camelCase; Python и Ruby — snake_case; CSS-классы и URL пишутся в kebab-case; переменные окружения и константы — в CONSTANT_CASE. Конвертер позволяет переключить фразу в нужный стиль, не пересобирая её по символу в голове.

Самое сложное здесь — не переписывание, а *токенизация*. Конвертер должен сначала корректно разбить смешанный ввод вроде XMLHttpRequest, iOSDevice или read_HTML5Tags на слова, а уже потом склеить их в нужном стиле. Хороший токенизатор аккуратно разруливает аббревиатуры (XML, iOS) и цифры.

Что вы освоите по ходу работы с регистрами

  • У каждого языкового сообщества свой любимый стиль. Подстраивайтесь под конвенцию той кодовой базы, в которой пишете.
  • Токенизация делит смешанный ввод по заглавным буквам, разделителям (_ - .) и границам цифр — и только потом собирает обратно.
  • Аббревиатуры делают преобразование неоднозначным: что должно получиться из XMLParserxmlParser или xMLParser? Выберите конвенцию для своего кода и придерживайтесь её.

Как преобразовать регистр пошагово

  1. Вставьте текст

    Кидайте одну фразу, идентификатор или целый список. Смешанный ввод — camelCase, snake_case, пробелы — обрабатывается без проблем.

  2. Сразу видите все варианты

    Конвертер показывает ваш ввод в 10+ стилях. Выбирайте тот, что используется в вашей кодовой базе.

  3. Подкрутите крайние случаи

    Переключите обработку аббревиатур, цифр и спецсимволов, если в вашем style guide на этот счёт есть отдельные правила.

  4. Кликните, чтобы скопировать

    Клик по любому варианту копирует его в буфер обмена. Удобно при рефакторинге между файлами или заполнении OpenAPI-спецификаций.

Стили именования: краткий справочник

Как одна и та же фраза выглядит в самых распространённых конвенциях.

СтильПримерГде применяется
camelCaseuserNameПеременные в JavaScript, методы в Java
PascalCaseUserNameИмена классов в большинстве языков, React-компоненты
snake_caseuser_namePython, Ruby, колонки баз данных
SCREAMING_SNAKE_CASEUSER_NAMEКонстанты, переменные окружения
kebab-caseuser-nameURL, CSS-классы, флаги командной строки
Title CaseUser NameЗаголовки, подписи
Sentence caseUser nameТексты в интерфейсе, обычная проза
Train-CaseUser-NameHTTP-заголовки (X-Request-Id)
dot.caseuser.nameКлючи конфигов, настройки с пространствами имён
flatcaseusernameДоменные имена, slug пакетов

Примеры преобразований, которые стоит попробовать

Преобразовать фразу

Ввод

user profile photo

Варианты

camelCase: userProfilePhoto · PascalCase: UserProfilePhoto · snake_case: user_profile_photo · kebab-case: user-profile-photo · CONSTANT_CASE: USER_PROFILE_PHOTO

Одни и те же слова, пять стилей. Берите тот, что соответствует файлу, в котором вы сейчас работаете.

Перенести JS-переменную в Python

JavaScript
const accessTokenExpiresAt = ...;
Python
access_token_expires_at = ...

Большинство команд держит одно каноничное имя в доменной модели и переводит его на границе между языками или между слоями API.

Сделать slug заголовка для URL

Заголовок

10 Best Practices for REST APIs

Slug

10-best-practices-for-rest-apis

Slug — это kebab-case в нижнем регистре с безопасным набором символов. Такие строки одинаково годятся и для сегментов URL, и для имён CSS-классов.

Типичные ошибки при работе с регистрами

  • Смешивать стили в одном файле или слое (userName и user_name в одном модуле). Выберите один стиль и следите за ним линтером.
  • Непоследовательно оформлять аббревиатуры (XmlParser против XMLParser). Договоритесь один раз для всей кодовой базы и больше не отступайте.
  • Забывать, что идентификаторы в БД иногда нормализуются по регистру: userName и username — это одна и та же колонка в PostgreSQL, но разные в MySQL.

FAQ по конвертеру регистров

Что такое camelCase?
В camelCase каждое слово, кроме первого, начинается с заглавной буквы, а сами слова склеиваются без разделителей (accessTokenExpiresAt). Это основной стиль для переменных и методов в JavaScript и Java.
Что такое snake_case?
В snake_case все слова пишутся строчными буквами и соединяются через подчёркивание (access_token_expires_at). Это идиоматичный стиль для Python, Ruby и большинства имён колонок в реляционных БД.
В чём разница между PascalCase и camelCase?
Оба стиля начинают каждое следующее слово с заглавной буквы. Разница — в первой букве: в PascalCase она заглавная (UserProfile), в camelCase — строчная (userProfile). PascalCase в большинстве экосистем зарезервирован под имена классов и React-компоненты.
Как превратить текст в URL-безопасный slug?
Перевести в нижний регистр, заменить пробелы и подчёркивания на дефисы, убрать диакритику (ée) и выкинуть всё, что не является буквой, цифрой или дефисом. У большинства конвертеров есть отдельный режим slugify, который делает это за один шаг.
Что выбрать в проекте — camelCase или snake_case?
Ориентируйтесь на язык: camelCase для JavaScript, Java, Swift; snake_case для Python, Ruby, Rust. Внутри одной кодовой базы важнее не сам выбор, а последовательность — линтер (ESLint, Pylint, Rubocop) поможет за этим следить.

Узнать больше

Другие инструменты разработчика

Учитесь программировать с Coddy

НАЧАТЬ