Що таке конвертація регістру тексту?
Конвертація регістру тексту бере вхідний рядок і виводить ті самі слова в іншій конвенції регістру. Найпоширеніші варіанти: 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 (заголовки та текст), а також повний нижній регістр і ВЕРХНІЙ РЕГІСТР. Цей конвертер виявляє природні межі слів у вашому введенні — пробіли, дефіси, підкреслення, крапки, слеші та переходи нижній→верхній регістр, що позначають ідентифікатори у стилі helloWorld — і збирає їх знову з роздільником і шаблоном капіталізації, який вимагає кожен цільовий регістр.
Як працює конвертація регістру?
Ваше введення обробляється повністю у вашому браузері за допомогою невеликого токенайзера на ванільному JavaScript та одинадцяти форматерів регістру. Основні кроки:
- Ваше введення зчитується дослівно з текстового поля — кожен байт, який ви вставили, зберігається в пам'яті локально.
- Токенайзер розбиває введення на пробіли, підкреслення, дефіси, крапки та слеші, потім додатково розбиває кожен фрагмент на межах нижній→верхній регістр (так
helloWorldстає["hello", "World"]) і на межах літера↔цифра (такv2APIстає["v", "2", "API"]). - Порожні токени відфільтровуються, а решта токенів переводиться в нижній регістр за допомогою
String.prototype.toLocaleLowerCase, щоб літери Unicode в турецькій, німецькій та інших мовах зберігалися правильно. - Одинадцять форматерів збирають токени в кожен цільовий регістр по черзі — camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case, path/case, Title Case (зі списком малих слів, щоб
and,the,ofтощо залишалися в нижньому регістрі, крім першого або останнього слова), Sentence case, повний нижній регістр та повний ВЕРХНІЙ РЕГІСТР. - Результат записується в один рядок на регістр у сітці результатів; кожен рядок має власну кнопку копіювання, яка використовує асинхронний 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 безпосередньо в поле slug вашої CMS — токенайзер обробляє пунктуацію та багатослівні фрази без зайвих роздільників.
Які поширені застосування конвертації регістру?
Перемикання між конвенціями регістру зустрічається в розробці програмного забезпечення, створенні контенту та інженерії даних:
- Рефакторинг коду: перейменування ідентифікаторів у кодовій базі при зміні керівництва зі стилю (наприклад, JavaScript camelCase → Python snake_case під час перезапису серверної частини) без введення помилок.
- Перетворення корисних навантажень API: конвертуйте ключі JSON з camelCase на snake_case перед передачею до серверної частини Ruby on Rails або Django, або на kebab-case для імені класу CSS-in-JS.
- Створення заголовків і слагів: одним кроком отримуйте заголовки сторінок у Title Case, мета-описи в Sentence case та URL-слаги в kebab-case з одного вихідного заголовка.
Як виглядає приклад конвертації регістру?
Вставте 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 (нижній регістр) та HELLO WORLD API (ВЕРХНІЙ РЕГІСТР). Те саме введення у вигляді helloWorldAPI токенізується в ті самі три слова — детектор межі нижній→верхній регістр обробляє і таку форму.
Чи це запускається в моєму браузері?
Так. Токенайзер і одинадцять форматерів регістру — це приблизно 120 рядків ванільного JavaScript, що виконується у вкладці браузера. Нічого не завантажується, жоден service worker не передає ваше введення, і сторінка не робить жодних мережевих запитів для самого кроку конвертації. Єдиний вихідний трафік — стандартні ресурси завантаження сторінки (CSS, шрифти, аналітика) — ваш текст ніколи не досягає Ultim8Soft.
Який формат регістру слід використовувати для імен змінних?
Залежить від мови та керівництва зі стилю команди. Кодові бази JavaScript та TypeScript переважно використовують camelCase для змінних і функцій, PascalCase для класів і компонентів React та CONSTANT_CASE для імен змінних середовища та констант рівня модуля. Python (PEP 8), Ruby та Rust надають перевагу snake_case для змінних і функцій, PascalCase для класів та CONSTANT_CASE для констант рівня модуля. Кодові бази C та C++ (ядро Linux, LLVM) схиляються до snake_case для функцій і CONSTANT_CASE для макросів препроцесора. Якщо сумніваєтесь, запустіть лінтер або форматер вашої команди — він вкаже, яка конвенція застосовується.
Як токенізується введення?
Токенайзер спочатку розбиває введення на будь-яку послідовність пробілів, підкреслень (_), дефісів (-), крапок (.) або слешів (/). Кожен отриманий фрагмент потім розбивається знову на межах нижній→верхній регістр (так helloWorld стає ["hello", "World"]) і на межах літера↔цифра (так v2API стає ["v", "2", "API"]). Порожні токени відфільтровуються, а решта переводиться в нижній регістр через String.prototype.toLocaleLowerCase. Форматери потім ре-капіталізують і з'єднують токени з роздільником, що вимагає кожен цільовий регістр.
Що з Unicode / не-ASCII символами?
Букви Unicode зберігаються при конвертації. Токенайзер використовує String.prototype.toLocaleLowerCase та toLocaleUpperCase, які враховують правила регістру, специфічні для мови — турецька з крапкою та без крапки i, верхній регістр ß до SS в німецькій, акцентовані латинські літери у французькій та іспанській тощо. Не-літерні символи, що НЕ належать до набору роздільників (пробіл, _, -, ., /) — наприклад, цифри, акцентовані літери або символи CJK — зберігаються всередині токена та відтворюються дослівно форматерами регістру.
Цей конвертер регістру — одна статична сторінка, яка запускає токенайзер та одинадцять форматерів повністю у вашому браузері — без сторонньої бібліотеки, без мережевого виклику для кожної конвертації, без облікового запису. Вставте будь-який текст вище, перегляньте одинадцять варіантів регістру поруч та скопіюйте потрібний.