Конвертер регистра
Быстрое преобразование регистра текста с поддержкой различных стилей именования в программировании
Выберите способ преобразования
Что такое преобразование регистра?
Преобразование регистра — это операция изменения буквенных символов текста в разные формы регистра. Помимо базовых преобразований (всё в верхнем, всё в нижнем, первая буква заглавная), поддерживаются различные стили именования в программировании: camelCase, PascalCase, snake_case и другие. Эти функции преобразования очень полезны для программистов и редакторов текста, позволяя быстро унифицировать формат текста или преобразовать стиль именования переменных. Text Case преобразует текст между uppercase, lowercase, title case, sentence case, camelCase, kebab-case, snake_case и похожими стилями. Это полезно для заголовков, имен файлов, переменных, slugs, полей таблиц, labels и copyediting. Язык и контекст остаются важными: имена собственные, acronyms, немецкие существительные, бренды и технические термины автоматическое преобразование может испортить. Для публичных текстов, code identifiers и localized UI strings результат нужно перечитать.
Как использовать
Основные операции
- Введите или вставьте текст для конвертации в левое поле ввода
- Нажмите соответствующую кнопку, чтобы выбрать режим конвертации
- Справа автоматически появится сконвертированный результат
- Нажмите «Копировать», чтобы сохранить результат в буфер обмена
Правила обработки текста
- Смена регистра лучше всего работает с обычным латинским текстом; имена, аббревиатуры, идентификаторы в коде и специфичные для локали символы могут потребовать ручной проверки.
- Перед заменой готового текста проверьте, что пунктуация, пробелы и границы слов сохранены.
Применение
Технический принцип
Приведение к верхнему и нижнему регистру — это не простая замена ASCII-символов. JavaScript предоставляет toUpperCase, toLowerCase и учитывающие локаль toLocaleUpperCase/toLocaleLowerCase. Классическая ловушка турецкого языка: 'I'.toLocaleLowerCase('tr-TR') возвращает бескавычную 'ı' (U+0131) вместо 'i', а 'i'.toLocaleUpperCase('tr-TR') возвращает кавычную 'İ' (U+0130). Немецкая 'ß' при приведении к верхнему регистру по умолчанию становится 'SS', а при локали 'de-DE-x-eszett' — заглавной эсцет 'ẞ' (U+1E9E). Инструмент работает в локали по умолчанию, если пользователь не выберет иное, что соответствует ожиданиям большинства идентификаторов кода. Режимы camel, Pascal, snake, kebab, constant, dot и path начинают работу с разбиения входного текста на словесные токены. Границы слов определяются по пробелам, дефисам, подчёркиваниям, точкам, косым чертам и по любому переходу от строчной к прописной букве (таким образом 'userProfileID' разбивается на ['user', 'Profile', 'ID']). Затем список токенов приводится к нижнему регистру, капитализируется по стилю и соединяется целевым разделителем: '' для camelCase и PascalCase, '_' для snake_case, '-' для kebab-case, '_' с верхним регистром для CONSTANT_CASE, '.' для dot.case и '/' для path/case. Sentence case капитализирует только первую букву после знака конца предложения (., !, ?) и пробелов, а Title Case капитализирует первую букву каждого слова и приводит остальные к нижнему регистру. В Unicode существуют специальные кодовые точки titlecase, например диграф 'Dž' (U+01C5), который не совпадает ни со строчной 'dž', ни с прописной 'DŽ', и стандартные методы String.prototype его не создают; для полной Unicode-капитализации нужны специализированные библиотеки. Для URL-слагификации требуется дополнительный проход нормализации — NFKD с удалением комбинирующих знаков — чтобы превратить 'café' в 'cafe' перед соединением через kebab-case.
- Ловушки локали: 'I'.toLocaleLowerCase('tr-TR') = 'ı'; 'i'.toLocaleUpperCase('tr-TR') = 'İ'; немецкая 'ß' по умолчанию даёт 'SS', при de-DE-x-eszett — 'ẞ'
- Разбиение на слова: токенизация по пробелам, '-', '_', '.', '/' и переходам строчная→прописная ('userProfileID' → ['user','Profile','ID'])
- Сборка стилей: camelCase = строчная первая + капитализация остальных, соединение ''; PascalCase = капитализация всех, соединение ''; snake = '_'; kebab = '-'
- CONSTANT_CASE / SCREAMING_SNAKE: snake_case, пропущенный через toUpperCase, используется для ключей переменных окружения
- Sentence case: капитализация первой буквы после [.!?] и пробелов; всё остальное в нижнем регистре
- Unicode titlecase: существуют специальные кодовые точки, например 'Dž' (U+01C5), но методы String.prototype их не создают
- Конвейер слагификации: str.normalize('NFKD').replace(/\p{M}+/gu, '') удаляет диакритические знаки, превращая 'café' в 'cafe' перед kebab-case
Примеры
Преобразование 'hello world' во все распространённые регистры
Вход: hello world
UPPERCASE: HELLO WORLD
lowercase: hello world
Capitalize: Hello World
Sentence case: Hello world
camelCase: helloWorld
PascalCase: HelloWorld
snake_case: hello_world
kebab-case: hello-world
CONSTANT_CASE: HELLO_WORLD
dot.case: hello.world
path/case: hello/worldРефакторинг переменной JavaScript в snake_case для Python
Вход: userProfileSettings
snake_case выход: user_profile_settings
CONSTANT_CASE: USER_PROFILE_SETTINGS
# Полезно при переносе кода между
# JavaScript (camelCase) и Python (snake_case).Преобразование заголовка статьи в URL-слаг
Вход: My First Blog Post: A Beginner's Guide!
kebab-case: my-first-blog-post-a-beginners-guide
Итоговый URL: https://blog.example.com/my-first-blog-post-a-beginners-guideПереключение регистра для стилизованного текста
Вход: Hello World
tOGGLE: hELLO wORLD
Вход: ToolAct Online
tOGGLE: tOOLaCT oNLINEЧасто задаваемые вопросы
Какие стили регистра поддерживаются?
UPPERCASE, lowercase, Title Case (Каждое Слово С Большой), Sentence case (только первая буква), camelCase (firstWordLowercase), PascalCase (FirstWordUpper), snake_case, kebab-case, CONSTANT_CASE. Страница преобразует в каждый из них в реальном времени.
В чём разница между Title Case и Sentence case?
Title Case делает с заглавной каждое значимое слово: «The Quick Brown Fox». Sentence case — только первое слово и имена собственные: «The quick brown fox». В Title Case есть стилевые варианты — некоторые пропускают короткие слова (a, an, the, of, in); страница обычно использует стиль APA или AP, проверьте в списке настроек.
Как обрабатываются иероглифы CJK?
У китайских, японских и корейских иероглифов нет понятия регистра, поэтому они проходят без изменений. В смешанном тексте CJK + латиница меняется только латинская часть. Ромадзи (латинская транскрипция японского), пиньинь (латинская транскрипция китайского) и латинизация корейского обрабатываются как обычная латиница.
Поддерживает ли он буквы с диакритикой?
Да — é → É, ñ → Ñ, ß → SS (немецкая прописная эсцет, в зависимости от правил Unicode). В некоторых старых системах ß отображается как SS; современный Unicode допускает ẞ. Страница использует встроенные toLowerCase/toUpperCase из JavaScript, которые следуют unicode case folding.
Почему турецкая I ведёт себя странно?
В турецком есть «i без точки» (ı) и «i с точкой» (i) — в турецкой локали строчная I это ı (без точки), а не i. Стандартные методы JavaScript для смены регистра не учитывают правила локали. Если для вас важен турецкий регистр, в коде используйте String.prototype.toLocaleLowerCase('tr').
Можно ли преобразовать snake_case обратно в Title Case?
Да. Детектор распознаёт распространённые стили регистра и конвертирует между любой парой: snake_case → kebab-case, PascalCase → camelCase и т. д. Аббревиатуры в PascalCase (например, HTMLParser) иногда некорректно проходят туда-обратно через snake_case — зависит от того, считает ли страница подряд идущие заглавные одним словом или несколькими.
Загружается ли мой текст?
Нет. Преобразование выполняется в вашем браузере с помощью строковых методов JavaScript. Вставленный текст не передаётся.