Échappeur de chaînes JS
Un texte avec des guillemets et un saut de ligne, comme Hello "world" sur deux lignes, devient Hello \"world\"\nline 2, prêt à coller entre guillemets doubles. Choisissez guillemets doubles, simples ou accents graves, ou déséchappez une chaîne pour retrouver le texte. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello "world" line 2
- Mode de calcul
- Escape
- Guillemets
- Double
- Résultat
- Hello \"world\"\nline 2
- Longueur
- 23
- Littéral
- "Hello \"world\"\nline 2"
Insérer du texte libre dans un littéral de chaîne JavaScript est un piège quotidien : un seul guillemet double termine la chaîne, une barre oblique inverse avale le caractère suivant, un saut de ligne brut est une erreur de syntaxe, et coller du non-ASCII peut casser d’anciens outils qui attendent \uXXXX. Cet échappeur de chaînes JavaScript transforme le texte brut en un corps de littéral sûr (et en un littéral entre guillemets prêt à coller), et inverse la même carte lorsque vous avez besoin des caractères d’origine. Le mode escape gère le style de guillemets choisi — doubles, simples ou backtick — ainsi que les barres, les escapes de contrôle habituels et, en option, les escapes unicode pour chaque point de code non ASCII.
Comment fonctionnent les escapes de chaînes JavaScript en pratique
Un littéral de chaîne JavaScript est une suite de caractères entourée de guillemets doubles, de guillemets simples ou de backticks. À l’intérieur, une barre inverse démarre un escape : \\ devient une seule barre, \" ou \' correspond au guillemet choisi, \n est un saut de ligne, \r un retour chariot, \t une tabulation, et des formes courtes comme \0, \b, \f et \v couvrent d’autres contrôles.
Deux formes hexadécimales sont standard dans les moteurs modernes : \xHH encode une unité de code avec deux chiffres hexadécimaux, et \uXXXX encode une unité UTF-16 avec quatre chiffres. ES6 autorise aussi des accolades du type \u{1F600} pour tout point de code Unicode jusqu’à U+10FFFF, la façon propre de représenter des caractères hors du plan multilingue de base sans paires de substitution manuelles. Cette capacité applique ces règles de façon déterministe.
En mode unescape elle analyse les mêmes séquences et rejette les barres finales, les formes \x ou \u incomplètes, les \u{} vides, les points de code hors plage et les escapes octaux hérités qui n’existent qu’en modes Annex B permissifs.
Où un échappeur de chaînes JS apporte de la valeur
Les sites de documentation et de recettes avec exemples copiables ont besoin d’un chemin d’escape fiable pour que les échantillons fournis par l’utilisateur restent du JavaScript valide. Les équipes support et sécurité collent des fragments de journaux qui contiennent déjà des escapes à barre inverse et ont besoin d’un unescape qui échoue clairement sur des séquences \u tronquées au lieu d’inventer des caractères. Les ingénieurs de localisation vérifient que les langues multi-octets font l’aller-retour lorsque le mode unicode est forcé pour des dépôts uniquement ASCII.
Les auteurs de programmes qui enseignent la syntaxe des chaînes ECMAScript veulent une page dédiée aux escapes de littéraux plutôt que d’enterrer le sujet sous un outil générique Base64 ou d’entités HTML, car l’intention de recherche et l’ensemble d’escapes autorisé diffèrent. Si vous avez besoin d’entités HTML, d’encodage pourcentage d’URL ou d’analyse complète de JavaScript, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page d’échappement de chaînes.
Cas d’usage
Littéraux de chaîne sûrs dans le code généré
Échappez titres, messages et valeurs de configuration en texte libre avant de les écrire en JavaScript avec guillemets doubles, simples ou littéraux de gabarit.
Réécriture unicode uniquement ASCII
Échappez avec unicode true pour que les caractères non ASCII deviennent des séquences \uXXXX ou \u{…} adaptées aux dépôts uniquement ASCII et aux chaînes d’outils anciennes.
Questions fréquentes
Quelle est la différence entre result et literal ?
Result est le corps échappé sans guillemets environnants. Literal (mode escape uniquement) enveloppe ce corps dans le style de guillemets choisi pour coller une chaîne JavaScript complète dans le code source.
Puis-je à la fois échapper et déséchapper ?
Oui. Définissez mode sur escape (par défaut) pour encoder le texte brut, ou mode sur unescape pour récupérer le texte depuis un corps de littéral de chaîne JavaScript.
Quels styles de guillemets sont pris en charge ?
Doubles (par défaut), simples et backtick. Le mode escape n’échappe que le délimiteur choisi ; le mode backtick échappe aussi ${ pour que le corps soit sûr dans un littéral de gabarit.
Que se passe-t-il si une séquence d’escape est mal formée ?
Rien n’est facturé pour les échecs de validation.
Quel est le coût ?
L’outil du navigateur est gratuit et s’exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"text": "Hello \"world\"\nline 2"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.js_string_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Le mode unescape comprend \n, \r, \t, \\ , \xHH, \uXXXX et \u{…}, et échoue immédiatement avec invalid_input sur les séquences tronquées ou illégales au lieu d’inventer des ordures à demi décodées.
Comment fonctionnent les escapes de chaînes JavaScript en pratique
En mode escape elle parcourt chaque unité de code, remplace les caractères spéciaux par l’escape sûr le plus court pour le style de guillemets sélectionné, échappe toujours U+2028 et U+2029 pour qu’un collage multiligne ne casse pas les lignes source, et réécrit optionnellement chaque caractère non ASCII en \uXXXX ou \u{…} lorsque unicode vaut true. Le chemin est un travail pur de chaînes sans réseau, sans graines aléatoires et sans horloge murale, donc des entrées identiques produisent toujours le même JSON. Le tarif des appels API réussis est la base publiée de $0.002 par élément, et les échecs de validation ne consomment pas le solde prépayé.
Ce que vous envoyez et ce que vous recevez
Le mode escape convertit le texte brut en un corps de littéral JavaScript stocké dans result et renvoie aussi literal : le même corps entouré des guillemets choisis pour le coller dans le code source. Le mode unescape inverse les séquences d’escape dans text et renvoie la chaîne brute récupérée dans result sans champ literal. Quote vaut double par défaut ; choisissez single ou backtick lorsque la syntaxe cible utilise ces délimiteurs — l’escape ne force l’escape que pour ce délimiteur (et, pour les backticks, pour la séquence ${ qui ouvrirait une interpolation). Les échecs de validation ne consomment pas le solde prépayé. Contrôles classiques : échapper une salutation contenant des guillemets et un saut de ligne, déséchapper un corps qui utilise \u00E9 pour é, échapper avec unicode true pour que café devienne caf\u00E9, et rejeter une chaîne qui se termine par une barre seule. Envoyez un champ chaîne obligatoire nommé text et des champs optionnels mode, quote et unicode. Lorsque mode est omis, escape est la valeur par défaut et un seul payload reste utile. La réponse renvoie mode, quote, unicode, le text d’origine, result et la length de result. Un text manquant, des objets non chaînes, des valeurs mode ou quote non prises en charge, des valeurs illisibles comme booléen pour unicode, des chaînes plus longues que le maximum documenté, des barres finales, des escapes hex incomplets, des chiffres non hex, des escapes d’accolades vides, des points de code illégaux et des formes octales rejetées échouent avec invalid_input et un message clair en anglais. Le tarif API en cas de succès est la base publiée de $0.002 par élément.
Où un échappeur de chaînes JS apporte de la valeur
Comme cette capacité est un moteur parse pur, le tarif API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.
Cas d'intégration
Décoder des corps échappés de journaux et fixtures
Déséchappez des corps de chaînes JavaScript issus de journaux, tickets et fichiers golden vers un texte lisible, avec échecs stricts sur les escapes incomplets ou illégaux.