web-dev-qa-db-fra.com

Javascript - Comment afficher les caractères d'échappement dans une chaîne?

Très simple question, mais pour une raison quelconque, je ne trouve pas la réponse après 10 minutes de recherches sur Google. Comment afficher les caractères d'échappement lors de l'impression en Javascript?

Exemple:

str = "Hello\nWorld";
console.log(str);

Donne:

Hello
World

Quand je le veux donner:

Hello\nWorld
43
Jazcash

Si votre objectif est d'avoir

str = "Hello\nWorld";

et affiche ce qu’il contient sous forme littérale, vous pouvez utiliser JSON.stringify:

console.log(JSON.stringify(str)); // ""Hello\nworld""

console.log ajoute les guillemets externes (du moins dans l'implémentation de Chrome), mais leur contenu est un littéral de chaîne (oui, c'est un peu déroutant).

JSON.stringify prend ce que vous lui donnez (dans ce cas, une chaîne) et renvoie une chaîne contenant un code JSON valide pour cette valeur. Donc, pour ce qui précède, il renvoie un devis d’ouverture ("), le mot Hello, une barre oblique inverse (\), la lettre n, le mot World et la citation de clôture ("). Le saut de ligne dans la chaîne est échappé dans la sortie en tant que \ et n, car c’est ainsi que vous codez un saut de ligne en JSON. D'autres séquences d'échappement sont codées de manière similaire.

74
T.J. Crowder

JavaScript utilise le\(barre oblique inverse) comme caractère d'échappement pour:

  • \' simple citation
  • \" double citation
  • \ backslash
  • \ n nouvelle ligne
  • \ r retour chariot
  • \ t onglet
  • \ b retour arrière
  • \ f form feed
  • \ v onglet vertical (IE <9 traite "\ v" comme "v" au lieu d'un onglet vertical ("\ x0B"). Si la compatibilité entre navigateurs est un problème, utilisez\x0B au lieu de\v.)
  • \ 0 caractère nul (U + 0000 NULL) (uniquement si le caractère suivant n’est pas un chiffre décimal, sinon il s’agit d’une séquence d'échappement octale)

Notez que les échappements\v et\0 ne sont pas autorisés dans les chaînes JSON.

21
PoppinL

Vous devez échapper à la barre oblique inversée, alors essayez ceci:

str = "Hello\\nWorld";

Ici sont plus de caractères échappés en Javascript.

19
philshem