Конвертер регистра — UPPER, lower, camelCase и snake_case
Конвертируйте текст между UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE и ещё 6 форматами мгновенно. Бесплатно, только в браузере, без регистрации.
Текстовые регистры
lowercase
Все буквы в нижнем регистре. Пробельные символы сохраняются.
UPPERCASE
Все буквы в верхнем регистре. Пробельные символы сохраняются.
Title Case
Первая буква каждого слова капитализирована.
Sentence case
Первая буква каждого предложения капитализирована.
iNVERSE cASE
Меняет верхний и нижний регистр местами для каждой буквы.
aLtErNaTiNg cAsE
Чередует нижний и верхний регистр по буквам.
RaNdOm CaSe
Подбрасывание монеты независимо для каждой буквы.
Программистские регистры
camelCase
Первое слово в нижнем регистре, остальные капитализированы, без разделителей.
PascalCase
Каждое слово капитализировано, без разделителей.
snake_case
Нижний регистр, соединение подчёркиваниями.
kebab-case
Нижний регистр, соединение дефисами.
CONSTANT_CASE
Верхний регистр, соединение подчёркиваниями.
dot.case
Нижний регистр, соединение точками.
path/case
Нижний регистр, соединение прямыми слэшами.
Header-Case
Каждое слово капитализировано, соединение дефисами.
Что такое конвертер регистра?
Конвертер регистра — это небольшая утилита, которая берёт фрагмент текста и перерисовывает его в другом соглашении по регистру букв. Простейшие формы — 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
Вставьте или введите ваш текст
Кликните в редактор и введите или вставьте любой текст — предложение, абзац, идентификатор, заголовок. Каждый вывод регистра обновляется мгновенно. Кликните Sample, чтобы загрузить репрезентативную фразу, если просто хочется увидеть, чем регистры отличаются.
- 2
Просканируйте сетку
Семь текстовых регистров (UPPERCASE, lowercase, Title, Sentence, iNVERSE, aLtErNaTiNg, RaNdOm) находятся в верхней секции. Восемь программистских регистров (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Header-Case) — в нижней. Каждая карточка показывает свою метку регистра, однострочное описание и сконвертированный вывод.
- 3
Кликните Copy на нужном регистре
У каждой выходной карточки своя маленькая кнопка Copy. Кликните один раз — регистр окажется в вашем буфере обмена, кнопка мигнёт «Скопировано!», и вы готовы вставить куда-то ещё. Не нужно сначала выделять выходной текст.
- 4
Переключите random case, если нужно
Если нужен другой вариант RaNdOm CaSe для того же текста, кликните Re-shuffle в строке действий. Меняется только вывод Random Case; входной текст и все остальные выводы остаются прежними.
- 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-тестирование). Для криптографической случайности используйте специализированный генератор паролей.
Часто задаваемые вопросы
Что делает конвертер регистра?
В чём разница между camelCase, PascalCase и snake_case?
Как токенизатор обрабатывает акронимы вроде XMLHttpRequest или parseHTML?
Что такое Title Case против Sentence case?
Загружается ли мой текст куда-либо?
Как сконвертировать текст в camelCase из любого другого регистра?
Поддерживает ли инструмент Unicode и нелатинские буквы?
В чём разница между dot.case и path/case?
Почему токенизатор разделяет на числах (file2x → file, 2, x)?
Чем alternating case отличается от random case?
Конвертирует ли это имена HTTP-заголовков?
Можно ли сконвертировать целый абзац сразу?
Насколько это точно по сравнению с lodash, change-case или другими библиотеками регистров?
Почему есть и Sentence case, и Title 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 полей, пресеты, описание простым языком. Бесплатно и приватно.