Conversor de mayúsculas
Hello World pasa a HELLO WORLD en mayúsculas, y el mismo texto puede cambiar a cualquiera de nueve estilos, del formato título u oración a camel, snake o kebab. Incluso HTMLParser2 se separa limpiamente en html, parser y 2. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello World
- Estilo
- MAYÚSCULAS
- Resultado
- HELLO WORLD
camel snake title gratis en el navegador
Los nueve modos de capitalización
La herramienta toma dos campos obligatorios, text y mode, donde mode es uno de nueve valores. upper y lower se corresponden directamente con toUpperCase y toLowerCase de JavaScript. title divide la cadena por secuencias de espacios en blanco y pone en mayúscula el primer carácter de cada palabra dejando el resto en minúscula, conservando el espaciado exacto entre palabras. sentence primero pasa todo a minúscula y luego pone en mayúscula la primera letra Unicode y la primera letra tras cada punto, signo de interrogación o de exclamación, lo que lo hace robusto en párrafos de varias oraciones.
Los cinco modos restantes son estilos de identificador de programador: camel pasa el primer token a minúscula y el resto a PascalCase, pascal pone en mayúscula cada token, snake y kebab unen los tokens en minúscula con un guion bajo o un guion, y constant une los tokens en mayúsculas con un guion bajo. El modo solicitado siempre vuelve tal cual en la respuesta.
Cómo divide los identificadores el tokenizador
Para los cinco modos de identificador el texto se tokeniza primero. Si la cadena ya contiene espacios, guiones bajos o guiones, se divide por secuencias de esos caracteres; a cada token se le quita luego todo carácter no alfanumérico y los tokens vacíos se descartan.
Si no hay separadores, el tokenizador detecta en su lugar los límites dentro de camelCase y alrededor de los dígitos: inserta cortes entre una minúscula o un dígito y una letra mayúscula, entre una secuencia de acrónimo y una palabra capitalizada que la sigue, y a ambos lados de una secuencia de dígitos.
Qué puede hacer con ella
Formato de titulares
Aplique capitalización de título u oración a los encabezados de un CMS para que los editores obtengan una capitalización coherente sin volver a teclear.
Generación de slugs
Convierta el nombre de un producto en kebab-case para slugs de URL y nombres de archivo, con la puntuación eliminada automáticamente.
Preguntas frecuentes
¿Qué estilos de capitalización se admiten?
Nueve: upper, lower, title, sentence, camel, pascal, snake, kebab y constant.
¿Cómo divide la entrada en camelCase?
Cuando no hay separadores, corta en los cambios de mayúscula y minúscula y en los límites de dígitos, de modo que myVar2 se tokeniza en my, var y 2.
¿Qué contiene la respuesta?
La misma entrada siempre produce la misma salida.
¿En qué se diferencian el formato de título y el de oración?
El formato de título pone en mayúscula la primera letra de cada palabra y el resto en minúscula, respetando los espacios. El de oración pasa todo a minúscula y luego pone en mayúscula la primera letra del texto y la que sigue a cada punto, interrogación o exclamación.
¿Puedo convertir el nombre de un producto en la dirección de una página?
Sí. Elija el estilo kebab: las palabras pasan a minúscula y se unen con guiones, y la puntuación sobrante se elimina, así que el resultado sirve para la dirección de una página o el nombre de un archivo.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/text/case-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello_world","mode":"camel"}'const res = await fetch("https://api.kit.forhosting.com/text/case-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello_world",
"mode": "camel"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/case-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello_world",
"mode": "camel"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/case-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello_world","mode":"camel"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello_world","mode":"camel"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/case-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "hello_world",
"mode": "camel"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.case_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 100000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Transforma una cadena de texto en uno de nueve estilos de capitalización —upper, lower, title, sentence, camel, pascal, snake, kebab o constant— devolviendo el modo original, el texto y el resultado convertido en JSON.
Cómo divide los identificadores el tokenizador
Así HTMLParser2 se divide en html, parser y 2, lo que significa que snake da html_parser_2 y constant da HTML_PARSER_2. Como el mismo tokenizador alimenta todos los modos de identificador, convertir un valor entre snake_case y kebab-case no pierde nada para las palabras alfanuméricas simples, y la puntuación suelta nunca se filtra a un identificador.
Validación, límites y forma de la salida
La validación se ejecuta antes de cualquier conversión. La entrada debe ser un objeto simple; text debe ser una cadena y mode debe ser uno de los nueve valores del enum, de lo contrario se lanza un error invalid_input tipado que nombra el campo infractor en lugar de un fallo sin tipo. text está limitado a 100000 caracteres, y cualquier cosa más larga se rechaza para que una única carga sobredimensionada no pueda atascar la pestaña del navegador ni el Worker. Cuando hay éxito, la respuesta es un objeto JSON estable con exactamente tres claves —mode, text y result— que reproduce el modo solicitado y el texto original junto a la cadena convertida, de modo que el código posterior puede registrar o comparar ambos sin una segunda llamada.
Casos de integración
Normalización de identificadores
Convierta nombres de columnas de base de datos o claves JSON a camelCase, snake_case o CONSTANT_CASE en masa durante una migración de datos.
Preguntas técnicas
¿Hay un límite de longitud?
Sí, text está limitado a 100000 caracteres; una entrada más larga devuelve invalid_input.
¿Es gratuito?
Sí, en el navegador (tier A). La API usa saldo prepago de KIT desde $0.002; las tareas fallidas no se cobran.