Transformação de texto
TextoConverter texto entre convenções de nomes, maiúsculas/minúsculas, largura total/meia e invertê-lo.
Nesta página
O que é uma ferramenta de transformação de texto?#
Uma ferramenta de transformação de texto reescreve uma string segundo uma regra fixa — mudar a maiúscula, trocar a convenção de nomes, inverter formas de meia e largura total, ou inverter os carateres. A maioria destas tarefas tem uma resposta duma linha na cabeça até se tentar realmente fazê-las: “converter este cabeçalho para kebab-case” é óbvio para Content Type mas ambíguo para HTTPServer, getUserById_v2 ou X-Rate-Limit-Remaining. Que partes são palavras? Onde caem as fronteiras?
Esta ferramenta responde a isso com um único divisor de palavras previsível. Normaliza os separadores (sublinhado, hífen, espaço, pontuação), depois insere fronteiras nas juntas de camelCase e PascalCase, nas juntas de acrónimo-para-palavra (HTTPServer → HTTP Server) e nas juntas de letra-para-dígito (v2 → v 2). Os tokens resultantes alimentam doze operações: cinco convenções de nomes (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE), quatro maiúsculas (MAIÚSCULAS, minúsculas, Tipo Título, Tipo frase), conversão de largura asiática-oriental (meia ↔ total) e inversão. A inversão percorre por ponto de código Unicode, pelo que emojis e outros carateres de par-surrogate sobrevivem intactos em vez de se transformarem em metades partidas.
Como usar#
- Escolha a operação na lista pendente da barra de ferramentas. As doze opções estão agrupadas logicamente: primeiro convenções de nomes, depois maiúsculas, depois conversão de largura, por fim inversão.
- Escreva ou cole no painel de entrada à esquerda, ou clique em Exemplo para carregar um caso que exercita o divisor.
- Leia o resultado no painel de saída à direita — atualiza-se no momento em que a entrada ou a operação selecionada muda.
- Clique em Copiar no cabeçalho da saída para recolher a string transformada, ou em Limpar para recomeçar.
As operações são totais: entrada vazia produz saída vazia, e nenhuma operação pode lançar erro. Trocar a lista pendente volta a correr a mesma entrada pela nova regra instantaneamente, o que faz disto uma forma rápida de comparar, por exemplo, snake_case com kebab-case para o mesmo identificador.
Principais recursos#
- Um divisor, doze saídas. As mesmas fronteiras de palavra alimentam todas as convenções de nomes, pelo que
getUserById_v2produzgetUserByIdV2/GetUserByIdV2/get_user_by_id_v2/get-user-by-id-v2/GET_USER_BY_ID_V2consistentes. - Divisão sensível a acrónimos.
HTTPServerse divide emHTTP+Server, nãoHTTPServer— o padrão reconhecido (uma sequência de maiúsculas seguida de uma palavra maiúscula-minuscula) mantém os acrónimos legíveis. - Fronteiras letra-para-dígito.
v2torna-se dois tokens, pelo queversion2slugifica de forma limpa em vez de colar um dígito a uma palavra. - Conversão de largura asiática-oriental. Meia-largura ASCII
Hello 123passa a largura totalHello 123(espaço incluído), e o inverso restaura ASCII — útil ao preencher formulários da Ásia Oriental ou alinhar texto CJK. - Inversão por ponto de código. Inverter
a😀bdáb😀a, não um emoji partido — o divisor percorre pontos de código em vez de unidades de código UTF-16. - Local e instantâneo. Sem rede, sem envio; cada transformação é pura matemática de strings na página.
Exemplo detalhado#
Cole uma etiqueta legível por humanos na entrada:
user first name
Percorra a operação pelas cinco convenções de nomes e veja o painel de saída:
- camelCase →
userFirstName - PascalCase →
UserFirstName - snake_case →
user_first_name - kebab-case →
user-first-name - CONSTANT_CASE →
USER_FIRST_NAME
Agora experimente um identificador mais confuso que mistura convenções:
HTTPServer v2
Porque o divisor reconhece a fronteira HTTP + Server e a fronteira v + 2, as saídas mantêm-se legíveis em vez de colapsarem em httpservver-v2:
- kebab-case →
http-server-v-2 - snake_case →
http_server_v_2 - CONSTANT_CASE →
HTTP_SERVER_V_2
É essa a diferença entre uma transformação que realmente percebe a estrutura do identificador e uma que apenas passa a minúsculas e junta num separador.
Perguntas frequentes#
Porque é que HTTPServer não passa a h-t-t-p-server?#
Porque o divisor trata uma sequência de maiúsculas seguida de uma palavra maiúscula-minuscula como um acrónimo mais uma palavra. HTTPServer lê-se como HTTP + Server, que é quase sempre o que se queria. Um divisor ingénuo que partisse em cada maiúscula produziria slugs ilegíveis como h-t-t-p-server.
Qual é a diferença entre Tipo Título e Tipo frase?#
Tipo Título coloca maiúscula na primeira letra de cada palavra delimitada por espaços (the quick fox → The Quick Fox), o que é o certo para títulos e títulos de livros. Tipo frase só coloca maiúscula no primeiro caráter alfabético de toda a string (the quick fox → The quick fox), o que é o certo para prosa e frases. Escolha conforme o que o texto realmente é.
Quando usaria a conversão meia-largura ↔ largura total?#
A tipografia da Ásia Oriental e alguns formulários governamentais/empresariais esperam letras latinas e dígitos em largura total (ABC123) para alinhamento visual com carateres CJK. Inversamente, texto copiado de uma fonte japonesa chega muitas vezes em forma de largura total e precisa de ser restaurado para ASCII antes de um regex ou analisador de código o aceitar. As duas operações são inversos exatos uma da outra.
A inversão trata emojis corretamente?#
Sim. A operação itera por ponto de código Unicode (via Array.from), não por unidade de código UTF-16, pelo que um caráter fora do plano multilingue básico — um emoji como 😀, um ideograma CJK raro ou um símbolo matemático — é invertido como uma unidade. Inverter abc😀def dá fed😀cba, com o emoji intacto.
Isto é útil para renomear um lote de arquivos ou variáveis?#
Para um único identificador, sim — cole, escolha a convenção, copie. Para trabalho em lote normalmente seria por script, mas esta página é uma forma rápida de confirmar a saída exata que uma convenção produz antes de a comprometer num regex ou codemod, especialmente para as entradas mistas difíceis que tentam os bugs.