§

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

§

Все варианты регистра

text
  • camelCase
  • PascalCase
  • snake_case
  • CONSTANT_CASE
  • kebab-case
  • dot.case
  • path/case
  • Title Case
  • Sentence case
  • lower case
  • UPPER CASE

Конвенции именования отражают институциональный голос российской инженерной культуры: руководства по стилю Яндекса и Сбера закрепляют camelCase для переменных JavaScript и PascalCase для классов Kotlin в Android-приложениях, а сервисы 1С:Предприятие сохраняют CONSTANT_CASE для системных констант. Программы CS на МФТИ, МГУ и ВШЭ обучают студентов сразу нескольким шаблонам — от snake_case в Python-курсах до kebab-case в URL-слугах. Статьи на Habr.com подробно разбирают именование переменных в продакшен-кодовых базах Тинькофф и Mail.ru. ГОСТ 7.61 диктует типографские правила прописных букв в библиографии, а руководства КриптоПро по безопасной разработке требуют CONSTANT_CASE для криптографических констант в C-коде.

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

Преобразование регистра текста принимает входную строку и выводит те же слова, но в другой конвенции буквенного регистра. Наиболее распространённые цели — camelCase и PascalCase (используются для идентификаторов в большинстве языков с фигурными скобками), snake_case и CONSTANT_CASE (Python, Ruby, Rust, макросы C), kebab-case (URL, имена классов CSS, атрибуты HTML, имена npm-пакетов), dot.case (ключи конфигурации, пути JavaScript-объектов), path/case (идентификаторы в стиле файловой системы), Title Case и Sentence case (заголовки и проза), плюс полный lower case и UPPER CASE. Этот конвертер определяет естественные границы слов в вашем вводе — пробелы, дефисы, подчёркивания, точки, слеши, а также переходы lowercase→uppercase, которые отмечают идентификаторы вида helloWorld, — и собирает их с разделителями и шаблоном капитализации, которые требует каждый целевой регистр.

Как работает преобразование регистра?

Ваш ввод обрабатывается полностью в вашем браузере небольшим vanilla-JavaScript-токенизатором и одиннадцатью форматтерами регистра. Высокоуровневые шаги:

  1. Ваш ввод считывается дословно из текстового поля — каждый байт, который вы вставили, хранится в памяти локально.
  2. Токенизатор разбивает ввод по пробелам, подчёркиваниям, дефисам, точкам и слешам, а затем дополнительно разбивает каждый фрагмент по границам lowercase→uppercase (так что helloWorld становится ["hello", "World"]) и по границам буква↔цифра (так что v2API становится ["v", "2", "API"]).
  3. Пустые токены отфильтровываются, а выжившие токены приводятся к нижнему регистру с помощью String.prototype.toLocaleLowerCase, чтобы юникодные буквы в турецком, немецком и других локалях были сохранены корректно.
  4. Одиннадцать форматтеров затем собирают токены в каждый целевой регистр по очереди — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (со списком малых слов, чтобы and, the, of и т. д. оставались в нижнем регистре, кроме первого или последнего слова), Sentence case, полный lower case и полный UPPER CASE.
  5. Вывод записывается по одной строке на регистр в сетке результатов; у каждой строки своя кнопка копирования, использующая асинхронный Clipboard API с синхронным запасным вариантом document.execCommand('copy') для старых браузеров.

Зачем использовать конвертер регистра?

  • Рефакторинг идентификаторов: переименуйте JavaScript-переменную с user_id на userId, Python-функцию с helloWorld на hello_world или Rust-константу с maxBuffer на MAX_BUFFER без ручной правки по одному символу.
  • Преобразование ключей конфигурации: переключите JSON-конфиг, полный camelCase-ключей, в snake_case YAML для Python-сервиса или в kebab-case для Helm-чарта одной вставкой.
  • Написание заголовков: вставьте черновик заголовка и прочитайте его в Title Case (с исключениями для малых слов по Chicago Manual of Style) рядом с формой Sentence case (AP Stylebook) — выберите ту, которую использует ваше издание.
  • Генерация URL-слугов: вставьте заголовок блог-поста и скопируйте kebab-case-форму прямо в поле слуга вашей CMS — токенизатор справляется с пунктуацией и многословными фразами, не оставляя лишних разделителей.

Каковы типичные применения преобразования регистра?

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

  • Рефакторинг кода: переименование идентификаторов в кодовой базе при смене руководства по стилю (например, JavaScript camelCase → Python snake_case при переписывании бэкенда) без опечаток.
  • Переоформление полезных нагрузок API: преобразование camelCase-ключей JSON в snake_case перед передачей в Ruby on Rails или Django-бэкенд, либо в kebab-case для имени CSS-in-JS-класса.
  • Создание заголовков и слугов: получите Title Case заголовки страниц, Sentence case мета-описания и kebab-case URL-слуги из одного и того же исходного заголовка в один шаг.

Как выглядит пример преобразования регистра?

Вставьте Hello World API на вход. Сетка результатов отображает одиннадцать строк одновременно: helloWorldApi (camelCase), HelloWorldApi (PascalCase), hello_world_api (snake_case), HELLO_WORLD_API (CONSTANT_CASE), hello-world-api (kebab-case), hello.world.api (dot.case), hello/world/api (path/case), Hello World Api (Title Case), Hello world api (Sentence case), hello world api (lower case) и HELLO WORLD API (UPPER CASE). Тот же ввод, вставленный как helloWorldAPI, токенизируется в те же три слова — детектор границы lowercase→uppercase справляется и с такой формой.

Работает ли это в моём браузере?

Да. Токенизатор и одиннадцать форматтеров регистра — это около 120 строк vanilla-JavaScript, выполняющихся внутри вкладки браузера. Ничего не загружается, никакой service worker не проксирует ваш ввод, и страница не делает ни одного сетевого запроса для самого шага преобразования. Единственный исходящий трафик — стандартные ресурсы загрузки страницы (CSS, шрифты, аналитика) — ваш текст никогда не достигает Ultim8Soft.

Какой формат регистра использовать для имён переменных?

Это зависит от языка и руководства по стилю команды. Кодовые базы JavaScript и TypeScript подавляющим большинством используют camelCase для переменных и функций, PascalCase для классов и React-компонентов и CONSTANT_CASE для имён переменных окружения и констант уровня модуля — руководства по стилю Google JavaScript и Airbnb закрепляют эти выборы. Python (PEP 8), Ruby и Rust предпочитают snake_case для переменных и функций, PascalCase для классов и CONSTANT_CASE для констант уровня модуля. Кодовые базы C и C++ (ядро Linux, LLVM) опираются на snake_case для функций и CONSTANT_CASE для препроцессорных макросов. Когда сомневаетесь, запустите линтер или форматтер вашей команды — он подскажет, какая конвенция применяется.

Как токенизируется ввод?

Токенизатор сначала разбивает ввод по любой последовательности пробелов, подчёркивания (_), дефиса (-), точки (.) или слеша (/). Каждый получившийся фрагмент затем снова разбивается по границам lowercase→uppercase (так что helloWorld становится ["hello", "World"]) и по границам буква↔цифра (так что v2API становится ["v", "2", "API"]). Пустые токены отфильтровываются, а выжившие токены приводятся к нижнему регистру через String.prototype.toLocaleLowerCase. Форматтеры затем заново капитализируют и пересоединяют токены с разделителем, который требует каждый целевой регистр. Стратегия обрабатывает все шесть распространённых форм идентификаторов — camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE и обычную прозу, разделённую пробелами, — из коробки.

А что насчёт Unicode / не-ASCII символов?

Юникодные буквы выживают круговую поездку. Токенизатор использует String.prototype.toLocaleLowerCase и toLocaleUpperCase, которые соблюдают локальные правила регистра — турецкие точечные и беспоинтные i, верхний регистр немецкой ß в SS, акцентированные латинские буквы во французском и испанском и т. д. Не-буквенные символы, НЕ входящие в набор разделителей (пробельные, _, -, ., /) — например цифры, акцентированные буквы или CJK-символы — сохраняются внутри токена, в котором они появляются, и форматтеры регистра выводят их дословно. Это означает, что ввод вида nœud_principal токенизируется в ["nœud", "principal"] и чисто преобразуется в nœudPrincipal (camelCase) или NœudPrincipal (PascalCase).

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