Échappement des caractères de nouvelle ligne dans les chaînes JSON avec JavaScript
Les chaînes JSON nécessitent souvent l'inclusion de caractères de nouvelle ligne pour plus de lisibilité. Cependant, ces caractères peuvent poser des problèmes lorsqu'ils sont directement transmis au format JSON. Pour résoudre ce problème, il est essentiel de les échapper avant d'envoyer la chaîne.
Option 1 : Utiliser JSON.stringify() et .replace()
Tout d'abord, convertissez le Objet JSON à une chaîne en utilisant JSON.stringify():
var json = JSON.stringify({"value": "This \nis a test"});
Ensuite, échappez les caractères de nouvelle ligne en utilisant .replace():
var escapedJson = json.replace(/\\n/g, "\\\\n");
Ceci remplace toutes les instances de "\n" par "\n", en échappant avec succès les caractères de nouvelle ligne.
Option 2 : Échapper aux caractères spéciaux à l'aide d'une fonction réutilisable
Pour échapper à tous les caractères spéciaux, y compris les caractères de nouvelle ligne, vous pouvez créer une fonction réutilisable :
String.prototype.escapeSpecialChars = function() {
return this.replace(/\\n/g, "\\\\n")
.replace(/\\'/g, "\\\\'")
.replace(/\\"/g, '\\\\"')
.replace(/\\&/g, "\\\\&")
.replace(/\\r/g, "\\\\r")
.replace(/\\t/g, "\\\\t")
.replace(/\\b/g, "\\\\b")
.replace(/\\f/g, "\\\\f");
};
Cette fonction peut être appliquée à n'importe quelle chaîne qui doit être échappée :
var json = JSON.stringify({"value": "This \nis a test"});
var escapedJson = json.escapeSpecialChars();
Les deux options échappent efficacement aux caractères de nouvelle ligne dans les chaînes JSON, garantissant ainsi la compatibilité lors de la transmission de données JSON.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3