Конвертация регистра текста — это процесс изменения написания букв или шаблона разделения слов в строке. Конвертер регистра принимает входные данные вида "hello world" и преобразует их в UPPERCASE, lowercase, Title Case, camelCase, snake_case, kebab-case или другие соглашения. Для простого ASCII-текста преобразование прямолинейно, однако в граничных случаях возникают сложности: аббревиатуры ("XMLParser"), правила, зависящие от локали (турецкая заглавная I с точкой), и строки со смешанным алфавитом.
Языки программирования, файловые системы и руководства по стилю применяют собственные соглашения об именовании. Переменные в JavaScript, как правило, используют camelCase. Функции и переменные в Python следуют snake_case согласно PEP 8. Имена классов CSS используют kebab-case. Столбцы баз данных варьируются в зависимости от команды, но snake_case доминирует в PostgreSQL и MySQL. Переключение между этими соглашениями вручную — медленное и чреватое ошибками занятие, особенно при переименовании в десятках файлов.
Соглашения о регистре важны и за пределами кода. Title Case следует правилам руководств по стилю — Chicago Manual of Style и APA — согласно которым артикли и короткие предлоги остаются строчными, если не стоят в начале предложения. Sentence case делает заглавной только первую букву и имена собственные. В американской издательской практике Title Case принят для заголовков; большинство европейских и технических документаций использует Sentence case.
Зачем использовать этот Case Converter?
Вставьте любой текст и мгновенно конвертируйте его в девять форматов регистра — без установки расширений VS Code и без написания одноразовых скриптов.
⚡
Мгновенная конвертация
Выберите формат регистра и сразу увидите результат. Никаких обращений к серверу, никакого ожидания. Переключайтесь между форматами и сравнивайте вывод параллельно.
🔒
Обработка с приоритетом конфиденциальности
Все преобразования выполняются в браузере с помощью JavaScript. Ваш текст остаётся на вашем устройстве. Ничего не отправляется на сервер и не сохраняется.
🔄
Девять форматов в одном инструменте
UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case и CONSTANT_CASE. Один ввод охватывает все распространённые соглашения.
🌍
Без регистрации
Откройте страницу и начните конвертировать. Никакой регистрации, никаких расширений для браузера, никакой установки на компьютер. Работает на любом устройстве с современным браузером.
Сценарии использования Case Converter
Фронтенд-разработка
Конвертируйте имена пропсов компонентов из snake_case ответов API в camelCase для объектов JavaScript. Переименовывайте классы CSS с camelCase на kebab-case при переходе на систему именования BEM или utility-first.
Проектирование серверного API
Переводите имена полей между соглашениями при маппинге столбцов базы данных (snake_case) в ключи JSON-ответа (camelCase). Проверяйте, что слои сериализации производят ожидаемый формат вывода.
DevOps и инфраструктура
Генерируйте имена переменных окружения в формате CONSTANT_CASE из описательных фраз. Конвертируйте имена ресурсов Terraform между snake_case и kebab-case при согласовании с руководством по стилю команды.
QA и автоматизация тестирования
Подготавливайте тестовые данные с правильно оформленными именами полей. Выявляйте несоответствия регистра между API-контрактами и ожиданиями клиента до выхода в продакшн.
Инженерия данных
Нормализуйте заголовки столбцов при импорте CSV- или Excel-файлов в базу данных. Конвертируйте заголовки в смешанном регистре, например "First Name", в столбцы snake_case вида "first_name" для единообразного проектирования схемы.
Техническое писательство и документация
Форматируйте ссылки на код в документации с правильным регистром. Конвертируйте описания на естественном языке в имена классов PascalCase или URL-слаги kebab-case для единообразия в технических спецификациях.
Справочник по соглашениям регистра
Каждое соглашение об именовании имеет конкретные правила капитализации и разделения слов. В таблице ниже приведены все девять форматов, поддерживаемых этим инструментом, на примере фразы "the quick brown fox".
Формат
Правило
Пример
UPPERCASE
Every letter capitalized
THE QUICK BROWN FOX
lowercase
Every letter lowercased
the quick brown fox
Title Case
First letter of each word capitalized
The Quick Brown Fox
Sentence case
First letter of each sentence capitalized
The quick brown fox
camelCase
No separators, first word lowercase
theQuickBrownFox
PascalCase
No separators, every word capitalized
TheQuickBrownFox
snake_case
Words joined by underscores, all lowercase
the_quick_brown_fox
kebab-case
Words joined by hyphens, all lowercase
the-quick-brown-fox
CONSTANT_CASE
Words joined by underscores, all uppercase
THE_QUICK_BROWN_FOX
camelCase vs snake_case vs kebab-case
Эти три соглашения доминируют в разработке программного обеспечения, но каждое принадлежит своей экосистеме. Использование неподходящего варианта ломает линтеры, нарушает API-контракты или приводит к непоследовательной кодовой базе.
camelCase
Стандарт для переменных, имён функций и ключей объектов в JavaScript и TypeScript. Java и C# используют camelCase для локальных переменных и параметров методов. JSON API, ориентированные на JavaScript-клиентов, как правило, применяют ключи в camelCase. Первое слово — строчное, каждое последующее начинается с заглавной буквы.
snake_case
Стандарт по умолчанию для Python (PEP 8), Ruby, Rust и большинства баз данных SQL. Функции стандартной библиотеки C также следуют этому шаблону. Слова разделяются символом подчёркивания, все буквы строчные. CONSTANT_CASE (все заглавные с подчёркиваниями) — вариант, используемый для констант и переменных окружения.
kebab-case
Стандарт для имён классов CSS, атрибутов HTML, URL-слагов и имён флагов CLI (--output-dir). Распространён в Lisp и Clojure. Слова разделяются дефисами, все буквы строчные. Большинство языков программирования не допускают дефисы в идентификаторах, поэтому kebab-case ограничен строками, именами файлов и разметкой.
Примеры кода
Как программно конвертировать между соглашениями регистра. Каждый пример охватывает наиболее распространённые преобразования: camelCase в snake_case, snake_case в camelCase и базовые преобразования upper/lower/title.
JavaScript
// camelCase → snake_case
function toSnakeCase(str) {
return str
.replace(/([a-z])([A-Z])/g, '$1_$2')
.replace(/[\s-]+/g, '_')
.toLowerCase()
}
toSnakeCase('myVariableName') // → "my_variable_name"
toSnakeCase('kebab-case-str') // → "kebab_case_str"
// snake_case → camelCase
function toCamelCase(str) {
return str
.toLowerCase()
.replace(/[_-](\w)/g, (_, c) => c.toUpperCase())
}
toCamelCase('my_variable_name') // → "myVariableName"
// Title Case
function toTitleCase(str) {
return str.replace(/\w\S*/g, w =>
w.charAt(0).toUpperCase() + w.slice(1).toLowerCase()
)
}
toTitleCase('the quick brown fox') // → "The Quick Brown Fox"
Python
import re
text = "the quick brown fox"
# UPPERCASE / lowercase
text.upper() # → "THE QUICK BROWN FOX"
text.lower() # → "the quick brown fox"
# Title Case
text.title() # → "The Quick Brown Fox"
# camelCase
def to_camel(s):
words = re.split(r'[\s_-]+', s)
return words[0].lower() + ''.join(w.capitalize() for w in words[1:])
to_camel("my_variable_name") # → "myVariableName"
# snake_case from camelCase
def to_snake(s):
return re.sub(r'([a-z])([A-Z])', r'\1_\2', s).lower()
to_snake("myVariableName") # → "my_variable_name"
# kebab-case
def to_kebab(s):
return re.sub(r'([a-z])([A-Z])', r'\1-\2', s).replace('_', '-').lower()
to_kebab("myVariableName") # → "my-variable-name"
camelCase начинается со строчной буквы (myVariable), тогда как PascalCase начинается с заглавной (MyVariable). В JavaScript camelCase используется для переменных и функций, PascalCase — для имён классов и компонентов React. В C# PascalCase применяется для публичных методов и свойств. Единственное структурное отличие — первый символ.
Как конвертировать camelCase в snake_case в JavaScript?
Вставьте символ подчёркивания перед каждой заглавной буквой с помощью регулярного выражения, затем переведите результат в нижний регистр: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(). Это работает для стандартного camelCase. Для строк с последовательными заглавными буквами, например "XMLParser", потребуется дополнительный проход регулярного выражения для корректного разбиения последовательностей заглавных.
Почему Python использует snake_case вместо camelCase?
PEP 8, официальное руководство по стилю Python, опубликованное в 2001 году, выбрало snake_case для функций и переменных, поскольку Гвидо ван Россум и основная команда посчитали его более читаемым с первого взгляда. Исследования, в частности работа Binkley et al. (2009), показали, что идентификаторы в snake_case распознавались программистами быстрее, чем camelCase в определённых задачах чтения. Соглашение применяется линтерами — flake8 и pylint.
Title Case — это то же самое, что написать каждое слово с заглавной буквы?
Простой Title Case делает заглавной первую букву каждого слова — именно это делает данный инструмент. Формальный Title Case (AP, Chicago, APA) имеет дополнительные правила: артикли (a, an, the), короткие союзы (and, but, or) и короткие предлоги (in, on, at) остаются строчными, если не стоят в начале или конце предложения. Формальная расстановка регистра в заголовках требует словарного поиска, а не простого посимвольного преобразования.
Умеет ли инструмент работать с Unicode и нелатинскими алфавитами?
Инструмент использует встроенные методы JavaScript toUpperCase() и toLowerCase(), которые следуют правилам регистра Unicode, определённым в стандарте Unicode (глава 3, раздел 3.13). Это корректно обрабатывает символы с диакритикой (é в É), немецкое эсцет (ss в SS) и греческие буквы. Однако правила, зависящие от локали, — например, турецкий регистр (где строчная i должна переходить в İ с точкой, а не в I) — зависят от языковых настроек браузера, а не от инструмента.
Для чего используется CONSTANT_CASE?
CONSTANT_CASE (также называемый SCREAMING_SNAKE_CASE) используется для констант и переменных окружения. В JavaScript: const MAX_RETRIES = 3. В Python: MAX_RETRIES = 3 (по соглашению, поскольку в Python нет настоящих констант). В shell-скриптах: export DATABASE_URL=.... Написание всего в верхнем регистре сигнализирует, что значение не должно переприсваиваться после инициализации.
Как выбрать правильное соглашение регистра для своего проекта?
Следуйте доминирующему соглашению для вашего языка и фреймворка. JavaScript/TypeScript: camelCase для переменных, PascalCase для классов и компонентов. Python: snake_case для функций и переменных, PascalCase для классов. CSS: kebab-case. SQL: snake_case для столбцов и таблиц. Ключи JSON в REST API: совпадают с языком фронтенда (camelCase для JS-клиентов, snake_case для Python-клиентов). В случае сомнений — проверьте конфигурацию линтера или файл .editorconfig в корне проекта.