Escapador de strings JS
Um texto com aspas e uma quebra de linha, como Hello "world" em duas linhas, vira Hello \"world\"\nline 2, pronto para colar entre aspas duplas. Escolha aspas duplas, simples ou crase, ou desfaça o escape de uma string para recuperar o texto. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello "world" line 2
- Modo de cálculo
- Escape
- Aspas
- Double
- Resultado
- Hello \"world\"\nline 2
- Comprimento
- 23
- Literal
- "Hello \"world\"\nline 2"
Incluir texto livre dentro de um literal de string JavaScript é um erro cotidiano: uma única aspas dupla encerra a string, uma barra invertida consome o próximo caractere, uma quebra de linha crua é erro de sintaxe e colar caracteres não ASCII pode quebrar ferramentas antigas que esperam \uXXXX. Este escapador de strings JavaScript transforma texto simples em um corpo de literal seguro (e em um literal entre aspas pronto para colar) e reverte o mesmo mapa quando você precisa dos caracteres originais de volta. O modo escape respeita o estilo de aspas escolhido —duplas, simples ou backtick— além de barras invertidas, escapes de controle usuais e, opcionalmente, escapes unicode para cada ponto de código não ASCII.
Como os escapes de string JavaScript funcionam na prática
Um literal de string em JavaScript é uma sequência de caracteres entre aspas duplas, aspas simples ou backticks. Dentro dessa sequência, a barra invertida inicia um escape: \\ vira uma única barra, \" ou \' corresponde à aspas escolhida, \n é quebra de linha, \r retorno de carro, \t tabulação, e formas curtas como \0, \b, \f e \v cobrem outros controles. Duas formas hexadecimais são padrão em motores modernos: \xHH codifica uma unidade de código com dois dígitos hexadecimais e \uXXXX codifica uma unidade UTF-16 com quatro dígitos.
O ES6 também permite chaves no estilo \u{1F600} para qualquer ponto de código Unicode até U+10FFFF, a forma limpa de representar caracteres fora do Plano Multilíngue Básico sem pares substitutos manuais. Esta capacidade aplica essas regras de forma determinística.
No modo escape percorre cada unidade de código, substitui caracteres especiais pelo escape seguro mais curto para o estilo de aspas selecionado, sempre escapa U+2028 e U+2029 para que uma colagem multilinha não quebre linhas de código, e opcionalmente reescreve cada caractere não ASCII em \uXXXX ou \u{…} quando unicode é true. No modo unescape analisa as mesmas sequências e rejeita barras finais, formas \x ou \u incompletas, \u{} vazios, pontos de código fora de faixa e escapes octais legados que só existem em modos Annex B relaxados.
Onde um escapador de strings JS entrega valor
Sites de documentação e receitas com exemplos copiáveis precisam de um caminho de escape confiável para que amostras fornecidas pelo usuário continuem sendo JavaScript válido. Equipes de suporte e segurança colam fragmentos de log que já contêm escapes com barra e precisam de um unescape que falhe de forma clara em sequências \u truncadas em vez de inventar caracteres. Engenheiros de localização verificam que idiomas multibyte façam ida e volta quando o modo unicode é forçado em repositórios só ASCII.
Autores de currículo que ensinam sintaxe de strings ECMAScript querem uma página dedicada a escapes de literais em vez de enterrar o tema sob uma ferramenta genérica de Base64 ou entidades HTML, porque a intenção de busca e o conjunto de escapes permitido diferem. Se você precisa de entidades HTML, codificação percentual de URL ou parsing completo de JavaScript, trate isso como intenções de busca e landings separadas em vez de sobrecarregar esta página de escape de strings.
Casos de uso
Literais de string seguros em código gerado
Escape títulos, mensagens e valores de configuração em texto livre antes de escrevê-los em JavaScript com aspas duplas, simples ou template literals.
Reescrita unicode só ASCII
Escape com unicode true para que caracteres não ASCII virem sequências \uXXXX ou \u{…} adequadas a repositórios só ASCII e toolchains legadas.
Perguntas frequentes
Qual é a diferença entre result e literal?
Result é o corpo escapado sem aspas ao redor. Literal (somente no modo escape) envolve esse corpo no estilo de aspas escolhido para que você possa colar uma string JavaScript completa no código-fonte.
Posso escapar e desescapar?
Sim. Defina mode como escape (padrão) para codificar texto simples, ou mode como unescape para recuperar o texto a partir de um corpo de literal de string JavaScript.
Quais estilos de aspas são suportados?
Duplas (padrão), simples e backtick. O modo escape só escapa o delimitador escolhido; o modo backtick também escapa ${ para que o corpo fique seguro dentro de um template literal.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
Como transformo letras acentuadas em escapes \u?
Ative a opção Unicode ao escapar. Todo caractere fora do ASCII é reescrito, então café vira caf\u00E9, e caracteres além do intervalo básico usam a forma \u{…}.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/js-string-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello \"world\"\nline 2"}'const res = await fetch("https://api.kit.forhosting.com/enc/js-string-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello \"world\"\nline 2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/js-string-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello \"world\"\nline 2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/js-string-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello \\"world\\"\\nline 2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello \"world\"\nline 2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/js-string-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello \"world\"\nline 2"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.js_string_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O modo unescape entende \n, \r, \t, \\ , \xHH, \uXXXX e \u{…}, e falha de imediato com invalid_input em sequências truncadas ou ilegais em vez de inventar lixo meio decodificado.
Como os escapes de string JavaScript funcionam na prática
O caminho é trabalho puro de strings sem rede, sem sementes aleatórias e sem relógio de parede, então entradas idênticas sempre produzem o mesmo JSON. O preço de chamadas API bem-sucedidas é a base publicada de US$ 0,002 por item, e falhas de validação não consomem saldo pré-pago.
O que você envia e o que recebe de volta
O modo escape converte texto simples em um corpo de literal JavaScript armazenado em result e também devolve literal: o mesmo corpo envolvido nas aspas escolhidas para colar no código-fonte. O modo unescape inverte as sequências de escape em text e devolve a string simples recuperada em result sem campo literal. Quote tem padrão double; defina single ou backtick quando a sintaxe de destino usar esses delimitadores — o escape só força o escape daquele delimitador (e, em backticks, da sequência ${ que abriria uma interpolação). Falhas de validação não consomem saldo pré-pago. Verificações clássicas incluem escapar uma saudação com aspas embutidas e uma quebra de linha, desescapar um corpo que usa \u00E9 para é, escapar com unicode true para que café vire caf\u00E9, e rejeitar uma string que termina com uma barra sozinha. Envie um campo de string obrigatório chamado text e campos opcionais mode, quote e unicode. Quando mode é omitido, escape é o padrão e um único payload ainda faz trabalho útil. A resposta ecoa mode, quote, unicode, o text original, result e o length de result. Text ausente, objetos que não são string, valores de mode ou quote não suportados, valores que não se leem como booleano para unicode, strings maiores que o máximo documentado, barras finais, escapes hex incompletos, dígitos não hex, escapes com chaves vazios, pontos de código ilegais e formas octais rejeitadas falham com invalid_input e uma mensagem clara em inglês. O preço da API com sucesso é a base publicada de US$ 0,002 por item.
Onde um escapador de strings JS entrega valor
Como esta capacidade é um motor parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Casos de integração
Decodificar corpos escapados de logs e fixtures
Desescape corpos de string JavaScript de logs, tickets e arquivos golden de volta a texto legível, com falhas rígidas em escapes incompletos ou ilegais.
Perguntas técnicas
O que acontece se uma sequência de escape estiver malformada?
O unescape falha com invalid_input, indicando a posição e a sequência inválida (por exemplo uma barra final ou \uXXXX incompleto). Nada é cobrado por falhas de validação.