Case Converter

Конвертуйте текст між uppercase, lowercase, title case, camelCase, snake_case та іншими форматами

Спробувати приклад

Введення

Результат

Працює локально · Безпечно вставляти секрети
Конвертований текст з'явиться тут…

Що таке конвертування регістру тексту?

Конвертування регістру тексту — це процес зміни регістру літер або шаблону розділення слів у рядку. Конвертер регістру приймає вхідний рядок на кшталт "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.

Навіщо використовувати цей конвертер регістру?

Вставте будь-який текст і миттєво конвертуйте його між дев'ятьма форматами регістру, не встановлюючи розширення VS Code і не пишучи разовий скрипт.

Миттєве конвертування
Оберіть формат регістру та одразу побачте результат. Без запитів до сервера, без очікування. Перемикайтесь між форматами, щоб порівнювати вивід поряд.
🔒
Обробка з пріоритетом конфіденційності
Усі перетворення виконуються у вашому браузері за допомогою JavaScript. Ваш текст залишається на вашому пристрої. Нічого не передається на сервер і нічде не зберігається.
🔄
Дев'ять форматів в одному інструменті
UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case та CONSTANT_CASE. Одне введення охоплює кожну поширену угоду.
🌍
Без реєстрації
Відкрийте сторінку та починайте конвертувати. Без реєстрації, без браузерного розширення, без встановлення на робочий стіл. Працює на будь-якому пристрої із сучасним браузером.

Сценарії використання конвертера регістру

Розробка фронтенду
Конвертуйте назви пропсів компонентів зі 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-контрактами та очікуваннями клієнтів до виходу у production.
Інженерія даних
Нормалізуйте заголовки стовпців при імпорті CSV або Excel-файлів до бази даних. Конвертуйте заголовки зі змішаним регістром на кшталт "First Name" до стовпців snake_case як "first_name" для узгодженої схеми бази даних.
Технічне письмо та документація
Форматуйте посилання на код у документації з правильним регістром. Конвертуйте описи звичайною мовою до назв класів PascalCase або URL-слагів kebab-case для узгодженості в технічних специфікаціях.

Довідник угод щодо регістру

Кожна угода щодо іменування має специфічні правила для написання великих літер і розділення слів. У таблиці нижче наведено всі дев'ять форматів, які підтримує цей інструмент, з використанням фрази "the quick brown fox" як приклад.

РегістрПравилоПриклад
UPPERCASEEvery letter capitalizedTHE QUICK BROWN FOX
lowercaseEvery letter lowercasedthe quick brown fox
Title CaseFirst letter of each word capitalizedThe Quick Brown Fox
Sentence caseFirst letter of each sentence capitalizedThe quick brown fox
camelCaseNo separators, first word lowercasetheQuickBrownFox
PascalCaseNo separators, every word capitalizedTheQuickBrownFox
snake_caseWords joined by underscores, all lowercasethe_quick_brown_fox
kebab-caseWords joined by hyphens, all lowercasethe-quick-brown-fox
CONSTANT_CASEWords joined by underscores, all uppercaseTHE_QUICK_BROWN_FOX

camelCase проти snake_case проти kebab-case

Ці три угоди домінують у розробці програмного забезпечення, але кожна належить до різної екосистеми. Вибір неправильної угоди порушує роботу лінтерів, порушує API-контракти або призводить до суперечливих кодових баз.

camelCase
Стандарт для змінних JavaScript і TypeScript, назв функцій та ключів об'єктів. Java та C# використовують його для локальних змінних і параметрів методів. 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, а також базові конвертування до верхнього, нижнього регістру та Title Case.

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"
Go
package main

import (
	"fmt"
	"regexp"
	"strings"
)

// camelCase → snake_case
func toSnake(s string) string {
	re := regexp.MustCompile("([a-z])([A-Z])")
	snake := re.ReplaceAllString(s, "${1}_${2}")
	return strings.ToLower(snake)
}

// snake_case → camelCase
func toCamel(s string) string {
	parts := strings.Split(strings.ToLower(s), "_")
	for i := 1; i < len(parts); i++ {
		parts[i] = strings.Title(parts[i])
	}
	return strings.Join(parts, "")
}

func main() {
	fmt.Println(toSnake("myVariableName"))  // → my_variable_name
	fmt.Println(toCamel("my_variable_name")) // → myVariableName
	fmt.Println(strings.ToUpper("hello"))    // → HELLO
	fmt.Println(strings.ToUpper("hello world")) // → HELLO WORLD
}
CLI (bash / sed)
# UPPERCASE
echo "hello world" | tr '[:lower:]' '[:upper:]'
# → HELLO WORLD

# lowercase
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'
# → hello world

# camelCase → snake_case (using sed)
echo "myVariableName" | sed 's/\([a-z]\)\([A-Z]\)/\1_\2/g' | tr '[:upper:]' '[:lower:]'
# → my_variable_name

# snake_case → kebab-case
echo "my_variable_name" | tr '_' '-'
# → my-variable-name

Часті запитання

У чому різниця між camelCase і PascalCase?
camelCase починається з малої літери (myVariable), тоді як PascalCase починається з великої (MyVariable). У JavaScript camelCase використовується для змінних і функцій; PascalCase — для назв класів і компонентів React. C# використовує PascalCase для публічних методів і властивостей. Єдина структурна відмінність — перший символ.
Як конвертувати camelCase до snake_case у JavaScript?
Вставте підкреслення перед кожною великою літерою за допомогою regex, а потім переведіть результат у нижній регістр: str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase(). Це обробляє стандартний camelCase. Для рядків із послідовними великими літерами на кшталт "XMLParser" потрібен додатковий прохід regex для правильного розбиття серій великих літер.
Чому 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). Це правильно обробляє символи з наголосами (é до É), німецький eszett (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 у кореневій директорії вашого проєкту.