Éviter d'échapper à des caractères spéciaux en javascript

Mon serveur renvoie la valeur en tant que support\testing . Lorsque je reçois cette valeur dans le client, il peut être échappé en tant que support testing . \t est échappé comme espace de tabulation.

Comment puis-je éviter d'échapper à des personnages spéciaux en JavaScript?

  • Toile HTML5 vers PDF
  • Affichage de pdf à partir de arraybuffer
  • Tri des tableaux imbriqués des objets par date
  • Événement onClick dans une boucle For
  • Exécution de la fonction JavaScript Explication: function object.myFunction () {..}
  • Fonction non définie
  • Somme de deux nombres avec invite (Débutant JavaScript)
  • Quel est l'opérateur à double point (...) en Javascript?
  • Une page pourrait-elle afficher un contenu différent si l'URL hash change?
  • Impossible de faire le déplacement carré sur toile, et maintenant le carré ne dessine pas non plus
  • Enregistrer les états de l'objet dans .data ou attr - Performance vs CSS?
  • Comment écrire palindrome en JavaScript
  • 4 Solutions collect form web for “Éviter d'échapper à des caractères spéciaux en javascript”

    Votre serveur doit afficher la chaîne avec un bon échappement.

    Dans ce cas, vous voulez un caractère de barre oblique inverse dans la sortie; La barre oblique inverse est un caractère spécial, donc devrait être échappé.

    La séquence d'échappement pour une barre oblique inverse est \\ (c'est-à-dire deux barres arrière), mais vous ne devriez pas avoir besoin de réfléchir à des codes d'échappement spécifiques – si vous émettez des données JS, vous devriez l'émettre en utilisant un échappement approprié pour la chaîne entière, Ce qui signifie généralement que vous devriez utiliser le codage JSON.

    La plupart des langages de serveurs fournissent actuellement le codage JSON comme une fonctionnalité intégrée. Vous n'avez pas spécifié la langue utilisée par votre serveur mais, par exemple, si elle est écrite en PHP, vous produisez votre chaîne en tant que json_encode($string) plutôt que de produire directement $string . D'autres langues fournissent une fonctionnalité similaire. Cela vous protégera non seulement des caractères de barre oblique en panne, mais aussi d'autres erreurs, telles que des citations ou des flux de ligne dans vos chaînes, ce qui provoquera également des erreurs si vous les placez dans un code Javascript comme une chaîne non modifiée.

    Si vous pouvez modifier le code côté serveur, vous devez ajouter le caractère d'échappement: "support\\testing" .

    Cela aboutira au résultat souhaité.

    Vous pouvez faire un simple remplacement:

     str.replace("\t","\\t"); 

    Et faites cela pour d'autres personnages dont vous avez besoin de remplacer.

    Meilleure solution pour cela

     function valid(f) { debugger; var s = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~"; str = f.value; for (var i = 0; i < str.length; i++) { if (s.indexOf(str.charAt(i)) != -1) { //alert("The box has special characters. \nThese are not allowed.\n"); f.value = f.value.replace(str.charAt(i), '');// : null; return false; } } } 
    JavaScript rend le site Web intelligent, beauté et facile à utiliser.