Ferramentas
Guias

Transformação de texto

Texto

Converter texto entre convenções de nomes, maiúsculas/minúsculas, largura total/meia e invertê-lo.

100% no cliente Sem backend
Entrada
Saída
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 (HTTPServerHTTP Server) e nas juntas de letra-para-dígito (v2v 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#

  1. 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.
  2. Escreva ou cole no painel de entrada à esquerda, ou clique em Exemplo para carregar um caso que exercita o divisor.
  3. Leia o resultado no painel de saída à direita — atualiza-se no momento em que a entrada ou a operação selecionada muda.
  4. 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_v2 produz getUserByIdV2 / GetUserByIdV2 / get_user_by_id_v2 / get-user-by-id-v2 / GET_USER_BY_ID_V2 consistentes.
  • Divisão sensível a acrónimos. HTTPServer se divide em HTTP + Server, não H T T P Server — 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. v2 torna-se dois tokens, pelo que version2 slugifica de forma limpa em vez de colar um dígito a uma palavra.
  • Conversão de largura asiática-oriental. Meia-largura ASCII Hello 123 passa a largura total Hello 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😀bb😀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:

  • camelCaseuserFirstName
  • PascalCaseUserFirstName
  • snake_caseuser_first_name
  • kebab-caseuser-first-name
  • CONSTANT_CASEUSER_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-casehttp-server-v-2
  • snake_casehttp_server_v_2
  • CONSTANT_CASEHTTP_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 foxThe 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 foxThe 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😀deffed😀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.