Maison interface Web js tutoriel Formatage et mise en évidence des chaînes JSON à l'aide des compétences Regular Expressions_Javascript

Formatage et mise en évidence des chaînes JSON à l'aide des compétences Regular Expressions_Javascript

May 16, 2016 pm 04:29 PM
json字符串 格式化 正则表达式 Souligner

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.

Copier le code Le code est le suivant :

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).

Copier le code Le code est le suivant :

//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.

Copier le code Le code est le suivant :

//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.

Copier le code Le code est le suivant :

$.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é.

Copier le code Le code est le suivant :

//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.

Copier le code Le code est le suivant :

.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;}

Copier le code Le code est le suivant :

//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

Copier le code Le code est le suivant :

<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字符串是不是美观了很多呢,超级实用吧,这么好的东东,当然不能独享,这里推荐给小伙伴们。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment formater le lecteur C avec la commande DOS Comment formater le lecteur C avec la commande DOS Feb 19, 2024 pm 04:23 PM

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 ? Le formatage d'un ordinateur portable le rendra-t-il plus rapide ? Feb 12, 2024 pm 11:54 PM

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

Secrets révélés des méthodes de récupération du format de téléphone portable (dysfonctionnement du téléphone portable ? Ne vous inquiétez pas) Secrets révélés des méthodes de récupération du format de téléphone portable (dysfonctionnement du téléphone portable ? Ne vous inquiétez pas) May 04, 2024 pm 06:01 PM

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

Validation des expressions régulières PHP : détection du format numérique Validation des expressions régulières PHP : détection du format numérique Mar 21, 2024 am 09:45 AM

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 des inclusions floues Expressions régulières PHP : correspondance exacte et exclusion des inclusions floues Feb 28, 2024 pm 01:03 PM

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.

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? May 31, 2024 pm 01:04 PM

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.

Quelles sont les méthodes de formatage HTML ? Quelles sont les méthodes de formatage HTML ? Mar 08, 2024 am 09:53 AM

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 ;

Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Comment faire correspondre les horodatages à l'aide d'expressions régulières dans Go ? Jun 02, 2024 am 09:00 AM

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.

See all articles