


Formatage et mise en évidence des chaînes JSON à l'aide des compétences Regular Expressions_Javascript
Les chaînes Json sont très utiles. Parfois, les informations renvoyées par certaines interfaces d'arrière-plan sont au format chaîne et ont une mauvaise lisibilité. À l'heure actuelle, il serait bien préférable qu'il existe une méthode permettant de formater et de mettre en évidence la chaîne Json. jetez un oeil à la mise en forme et à la mise en évidence d'une chaîne json complétée par une expression régulière
La première étape consiste à convertir l'entrée. S'il s'agit d'un objet, elle est convertie en une chaîne json standardisée. Si ce n'est pas un objet, la chaîne est d'abord convertie en objet (pour éviter les chaînes non standard). , puis converti à nouveau en chaîne json. Où json est l'entrée.
if (typeof json !== 'string') {
json = JSON.stringify(json);
} autre {
json = JSON.parse(json);
json = JSON.stringify(json);
>
Après avoir standardisé les données, marquez la chaîne pour une segmentation et une recombinaison ultérieures
Il y a plusieurs endroits où vous devez ajouter des balises, notamment des crochets, des crochets et des virgules. J'utilise ici des sauts de ligne. n (de cette façon, l'effet sera meilleur lorsqu'il sera testé sous la ligne de commande).
//Ajoute des nouvelles lignes avant et après les accolades
reg = /([{}])/g;
json = json.replace(reg, 'rn$1rn');
// Ajout de sauts de ligne avant et après les crochets
reg = /([[]])/g;
json = json.replace(reg, 'rn$1rn');
// Ajoute une nouvelle ligne après la virgule
reg = /(,)/g;
json = json.replace(reg, '$1rn');
Après avoir ajouté la marque d'achèvement, vous devez effectuer un traitement d'optimisation, supprimer les sauts de ligne supplémentaires et supprimer les sauts de ligne avant la virgule. Ceci afin d'éviter les chaînes vides lors de la segmentation et de gaspiller une boucle. Enfin, ajoutez un espace. après le côlon. Voir C'est plus joli.
//Supprimer les sauts de ligne redondants
reg = /(rnrn)/g;
json = json.replace(reg, 'rn');
// Supprime la nouvelle ligne avant la virgule
reg = /rn,/g;
json = json.replace(reg, ',');
//Retrait avant deux points
reg = /:/g;
json = json.replace(reg, ': ');
L'étape suivante consiste à poursuivre le traitement de cette chaîne initialement traitée. J'ajouterai une logique à la fonction function(index, node) {} pour traiter chaque unité de segmentation, y compris l'indentation et l'embellissement du formatage.
$.each(json.split('rn'), function(index, node) {});
Tout d'abord, parlons de l'indentation. La méthode d'indentation est très simple. Lorsque vous rencontrez des symboles {, [, l'indentation augmente de 1, et lorsque vous rencontrez des symboles }, ], l'indentation diminue de 1. Sinon, l'indentation diminue de 1. le montant reste inchangé.
//Lorsque vous rencontrez {, [ici, le niveau d'indentation augmente de 1, lorsque vous rencontrez }, ], le niveau d'indentation diminue de 1, et lorsqu'il n'est pas rencontré, le niveau d'indentation reste inchangé
if (node.match(/{$/) || node.match(/[$/)) {
retrait = 1;
} sinon if (node.match(/}/) || node.match(/]/)) {
Si (pad !== 0) {
pad -= 1;
>
} autre {
retrait = 0;
>
Après avoir terminé l'indentation, il est temps d'embellir le code en surbrillance. Plusieurs règles CSS sont utilisées ici. Comme vous pouvez le voir ci-dessous, lors de la mise en évidence des unités segmentées, des règles régulières sont utilisées pour juger s'il correspond aux grandes parenthèses. marquez la classe d'objet et les crochets marquent la classe du tableau, le nom de l'attribut et la valeur de l'attribut. Ajoutez ces règles CSS à la fois. Une fois l'ajout terminé, elles peuvent être assemblées.
.ObjectBrace{color:#00AA00;font-weight:bold;}
.ArrayBrace{color:#0033FF;font-weight:bold;}
.PropertyName{color:#CC0000;font-weight:bold;}
.String{color:#007777;>
.Numéro{color:#AA00AA;}
.Comma{color:#000000;font-weight:bold;}
//Ajouter une mise en évidence du code
node = node.replace(/([{}])/g,"$1");
node = node.replace(/([[]])/g,"$1");
node = node.replace(/(".*")(:)(.*)(,)?/g,"$1$2$3$4");
node = node.replace(/"([^"]*)"(,)?$/g,""$1"2$");
node = node.replace(/(-?d )(,)?$/g,"$1$2< /span>");
Enfin, jetons un œil au code complet de la méthode (ici j'ai utilisé la bibliothèque de classes jquery), et à l'adresse du test :
Pour embellir jsonstr, utilisez simplement APP.format(jsonstr) et envoyez-le directement dans la balise
pour voir l'effet,Ce qui suit est une adresse de test, http://iforever.sinaapp.com/ Vous pouvez entrer et l'essayer et voir le code source complet
<script><br> var APP=fonction(){<br> var format=fonction(json){<br> var reg=null,<br> result='';<br> pad=0,<br> PADDING=' If (typeof json !== 'string') {<br> json = JSON.stringify(json);<br> } autre {<br> json = JSON.parse(json);<br> json = JSON.stringify(json);<br> }<br> // Ajouter des sauts de ligne avant et après les accolades <br> reg = /([{}])/g;<br> json = json.replace(reg, 'rn$1rn');<br> // Ajouter des nouvelles lignes avant et après les crochets <br> reg = /([[]])/g;<br> json = json.replace(reg, 'rn$1rn');<br> // Ajouter une nouvelle ligne après la virgule <br> reg = /(,)/g;<br> json = json.replace(reg, '$1rn');<br> // Supprime l'excédent de monnaie <br> reg = /(rnrn)/g;<br> json = json.replace(reg, 'rn');<br> //Supprimer la nouvelle ligne avant la virgule<br> reg = /rn,/g;<br> json = json.replace(reg, ',');<br> //Retrait avant deux points <br> reg = /:/g;<br> json = json.replace(reg, ': ');<br> // Divisez JSON en fonction des nouvelles lignes et traitez chaque petit morceau <br> $.each(json.split('rn'), function(index, node) {<br> var i = 0,<br> retrait = 0,<br> padding = '';<br> //Ici, lorsque {, [ est rencontré, le niveau d'indentation est augmenté de 1, lorsque }, ] est rencontré, le niveau d'indentation est réduit de 1, et lorsqu'il n'est pas rencontré, le niveau d'indentation reste inchangé <br> Si (node.match(/{$/) || node.match(/[$/)) {<br> retrait = 1;<br> } else if (node.match(/}/) || node.match(/]/)) {<br> Si (pad !== 0) {<br> pad -= 1;<br> }<br> } autre {<br> retrait = 0;<br> ><br> //rembourrage保存实际的缩进<br> pour (i = 0; i < pad; i ) {<br> rembourrage = REMBOURRAGE;<br> ><br> //添加代码高亮<br> node = node.replace(/([{}])/g,"<span class='ObjectBrace'>$1</span>");<br> node = node.replace(/([[]])/g,"<span class='ArrayBrace'>$1</span>");<br> node = node.replace(/(".*")(:)(.*)(,)?/g,"<span class='PropertyName'>$1</span>$2$3$4"); <br> node = node.replace(/"([^"]*)"(,)?$/g,"<span class='String'>"$1"</span><span class='Comma '>2$</span>");<br> node = node.replace(/(-?d )(,)?$/g,"<span class='Number'>$1</span><span class='Comma'>$2< /span>");<br> résultat = nœud de remplissage '<br>';<br> pad = retrait;<br> });<br> renvoyer le résultat ;<br> };<br> revenir {<br> "format":format,<br> };<br> }();<br> </script>
怎么样,json字符串是不是美观了很多呢,超级实用吧,这么好的东东,当然不能独享,这里推荐给小伙伴们。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La commande DOS est un outil de ligne de commande utilisé dans le système d'exploitation Windows, qui peut être utilisé pour effectuer diverses tâches et opérations de gestion du système. L'une des tâches courantes consiste à formater le disque dur, y compris le lecteur C. Le formatage du lecteur C est une opération relativement dangereuse car elle effacera toutes les données du lecteur C et réinitialisera le système de fichiers. Avant d'effectuer cette opération, assurez-vous d'avoir sauvegardé les fichiers importants et de bien comprendre l'impact que le formatage aura sur votre ordinateur. Ce qui suit est formaté dans la ligne de commande DOS

Le formatage d’un ordinateur portable le rendra-t-il plus rapide ? Si vous souhaitez formater votre ordinateur portable Windows mais que vous voulez savoir si cela le rendra plus rapide, cet article vous aidera à connaître la bonne réponse à cette question. Le formatage d’un ordinateur portable le rendra-t-il plus rapide ? Il existe de nombreuses raisons pour lesquelles les utilisateurs formatent leurs ordinateurs portables Windows. Mais la raison la plus courante est la lenteur des performances ou de la vitesse de votre ordinateur portable. Le formatage d'un ordinateur portable supprimera complètement toutes les données stockées sur le disque C ou la partition du disque dur sur laquelle le système d'exploitation Windows est installé. Par conséquent, chaque utilisateur réfléchira à deux fois avant de franchir cette étape, notamment en ce qui concerne les performances de l'ordinateur portable. Cet article vous aidera à comprendre si le formatage de votre ordinateur portable l'accélérera. Le formatage de votre ordinateur portable aide

De nos jours, nous rencontrerons inévitablement certains problèmes comme l'impossibilité d'allumer le téléphone ou des retards, comme une panne du système, mais lors de leur utilisation, les téléphones portables sont devenus un élément indispensable de nos vies. Nous sommes souvent désemparés et parfois, il n’existe aucune solution à ces problèmes. Pour vous aider à résoudre les problèmes de téléphone portable, cet article vous présentera certaines méthodes de récupération du format de téléphone portable et restaurera votre téléphone en fonctionnement normal. Sauvegarder les données - protégez les informations importantes, telles que les photos et les contacts, contre la perte pendant le processus de formatage. Avant de formater votre téléphone, la première chose à considérer est de sauvegarder les données et fichiers importants sur votre téléphone. Pour garantir la sécurité des données ou choisir de transférer des fichiers vers un service de stockage cloud, vous pouvez les sauvegarder en vous connectant à un ordinateur. Utilisez la fonction de récupération intégrée du système - simple

Vérification des expressions régulières PHP : détection du format numérique Lors de l'écriture de programmes PHP, il est souvent nécessaire de vérifier les données saisies par l'utilisateur. L'une des vérifications courantes consiste à vérifier si les données sont conformes au format numérique spécifié. En PHP, vous pouvez utiliser des expressions régulières pour réaliser ce type de validation. Cet article explique comment utiliser les expressions régulières PHP pour vérifier les formats de nombres et fournit des exemples de code spécifiques. Tout d’abord, examinons les exigences courantes de validation du format numérique : Entiers : contiennent uniquement des nombres de 0 à 9, peuvent commencer par un signe plus ou moins et ne contiennent pas de points décimaux. point flottant

Expressions régulières PHP : correspondance exacte et exclusion Les expressions régulières d'inclusion floue sont un puissant outil de correspondance de texte qui peut aider les programmeurs à effectuer une recherche, un remplacement et un filtrage efficaces lors du traitement du texte. En PHP, les expressions régulières sont également largement utilisées dans le traitement des chaînes et la correspondance des données. Cet article se concentrera sur la façon d'effectuer une correspondance exacte et d'exclure les opérations d'inclusion floue en PHP, et l'illustrera avec des exemples de code spécifiques. Correspondance exacte La correspondance exacte signifie faire correspondre uniquement les chaînes qui répondent à la condition exacte, sans aucune variation ni mot supplémentaire.

Pour valider les adresses e-mail dans Golang à l'aide d'expressions régulières, procédez comme suit : Utilisez regexp.MustCompile pour créer un modèle d'expression régulière qui correspond aux formats d'adresse e-mail valides. Utilisez la fonction MatchString pour vérifier si une chaîne correspond à un modèle. Ce modèle couvre la plupart des formats d'adresses e-mail valides, notamment : Les noms d'utilisateur locaux peuvent contenir des lettres, des chiffres et des caractères spéciaux : !.#$%&'*+/=?^_{|}~-`Les noms de domaine doivent contenir au moins un lettre, suivie de lettres, de chiffres ou de tirets. Le domaine de premier niveau (TLD) ne peut pas comporter plus de 63 caractères.

Méthode de formatage HTML : 1. Utilisez les outils de formatage HTML en ligne ; 2. Utilisez les touches de raccourci de formatage HTML fournies avec l'éditeur de code, telles que Shift + Alt + F dans Visual Studio Code ; 3. Utilisez des plug-ins, comme dans Sublime ; Texte HTML/CSS/JS Prettify plug-in ; 4. Utiliser des outils de ligne de commande, tels que HTML Tidy 5. Formatage manuel selon les normes et habitudes de codage ;

Dans Go, vous pouvez utiliser des expressions régulières pour faire correspondre les horodatages : compilez une chaîne d'expression régulière, telle que celle utilisée pour faire correspondre les horodatages ISO8601 : ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . Utilisez la fonction regexp.MatchString pour vérifier si une chaîne correspond à une expression régulière.
