Page d'accueil » Codage » 30 extraits de code Regex utiles pour les développeurs Web

    30 extraits de code Regex utiles pour les développeurs Web

    Les expressions régulières sont un outil puissant qui devrait figurer dans la ceinture d'outils de chaque développeur. Ils peuvent correspondre à une chaîne de caractères en fonction de paramètres très complexes, ce qui peut vous faire gagner beaucoup de temps lors de la création de sites Web dynamiques..

    Les développeurs Web ont des tâches différentes de celles des développeurs de logiciels, mais la plupart des principes fondamentaux du code demeurent. Expressions régulières (ou regex) ont un courbe d'apprentissage initiale abrupte, mais ils peuvent être extrêmement puissant lorsqu'il est utilisé correctement.

    La partie la plus délicate est d'apprendre la syntaxe et d'apprendre à écrire votre propre code regex à partir de zéro. Pour gagner du temps, j'ai organisé 30 extraits de code regex différents que vous pouvez intégrer à des projets de développement. Et comme regex ne se limite pas à une seule langue, vous pouvez appliquer ces extraits à JavaScript à PHP ou Python.

    1. Force du mot de passe

    ^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # & *]) (? =. * [0-9]. * [0-9]) (? = . * [az]. * [az]. * [az]). 8 $

    Vérifier la force d'un mot de passe est souvent subjectif, il n'y a donc pas de réponse correcte absolue. Mais je pense que cet extrait de code regex est un excellent point de départ si vous ne voulez pas écrire votre propre vérificateur de force du mot de passe à partir de zéro. (La source)

    2. Couleur hexadécimale

    \ # ([a-fA-F] | [0-9]) 3, 6

    Le domaine du développement Web est omniprésent avec les codes de couleur hexadécimaux. Cet extrait de regex peut être utilisé pour extraire des correspondances de code hexadécimal à partir de n’importe quelle chaîne, dans n’importe quel but. (La source)

    3. Valider l'adresse e-mail

    /[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]2,4Buch/igm

    L'une des tâches les plus courantes d'un développeur consiste à vérifier si une chaîne est formatée dans le style d'une adresse électronique. Il existe différentes variantes pour accomplir cette tâche. Ce lien SitePoint offre donc deux extraits de code distincts permettant de vérifier la syntaxe d'un courrier électronique par rapport à une chaîne. (La source)

    4. Adresse IPv4

    /\b(?:(:25&0-5]|2[0-4][0-9]|[01]?[0-9]0a0-9]?)\.)ench3 (?: 25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?) \ B /

    L'adresse IP typique utilisée pour identifier un ordinateur spécifique accédant à Internet ressemble à une adresse électronique. Cette expression régulière vérifiera une chaîne pour voir si elle suit la syntaxe d'adresse IPv4. (La source)

    5. Adresse IPv6

    (([0-9a-fA-F] 1,4:) 7,7 [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1 , 4:) 1,7: | ([0-9a-fA-F] 1,4:) 1,6: [0-9a-fA-F] 1,4 | ([0-9a-fA-F] 1,4:) 1,5 (: [0-9a-fA-F] 1,4) 1,2 | ([0-9a -fA-F] 1,4:) 1,4 (: [0-9a-fA-F] 1,4) 1,3 | ([0-9a-fA-F] 1,4:) 1,3 (: [0-9a-fA-F] 1,4) 1,4 | ([0-9a-fA-F] 1,4 :) 1,2 (: [0-9a-fA-F] 1,4) 1,5 | [0-9a-fA-F] 1,4: ((: [0 -9a-fA-F] 1,4) 1,6) |: ((: [0-9a-fA-F] 1,4) 1,7 |:) | fe80: (: [0-9a-fA-F] 0,4) 0,4% [0-9a-zA-Z] 1, |: :( ffff (: 0 1,4) 0,1:) 0,1 ((25 [0-5] | (2 [0-4] | 1 0,1 [0-9])) 0,1 [0-9 ]) \.) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9]) 0,1 [0-9]) | ([0-9a-fA-F] 1,4:) 1,4: ((25 [0-5] | 2 [0-4] | 1 0,1 [0-9 ]) 0,1 [0-9]) \.) 3,3 (25 [0-5] | (2 [0-4] | 1 0,1 [0-9])  0,1 [0-9]))

    Sinon, vous pouvez également vérifier une adresse pour la nouvelle syntaxe IPv6 avec cet extrait de code regex plus avancé. La différence est mineure mais vitale au cours du développement. (La source)

    6. séparateur de milliers

    / \ d 1,3 (? = (\ d 3) + (?! \ d)) / g

    Les systèmes de numérotation traditionnels nécessitent une virgule, un point ou une autre marque tous les trois chiffres d'un chiffre plus grand. Ce code de regex fonctionne sur n’importe quel nombre et applique toute marque que vous choisissez à chaque troisième chiffre se séparant en milliers, millions, etc. (Source)

    7. Ajoutez le lien HTTP au lien hypertexte

    if (! s.match (/ ^ [a-zA-Z] +: \ / \ //)) s = 'http: //' + s; 

    Que vous travailliez en JavaScript, Ruby ou PHP, cette expression régulière peut s'avérer très utile. Il vérifie si une chaîne d'URL a un préfixe HTTP / HTTPS et, le cas échéant, l'ajoute au début. (La source)

    8. Extraire le domaine de l'URL

    /https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i

    Chaque domaine de site Web contient le protocole initial (HTTP ou HTTPS) et souvent un sous-domaine plus le chemin de page supplémentaire. Vous pouvez utiliser cet extrait pour réduire tout cela et ne renvoyer que le nom de domaine sans fioritures. (SourceL

    9. Trier les mots-clés par nombre de mots

    ^ [^ \ s] * $ correspond exactement au mot clé 1-mot ^ [^ \ s] * \ s [^ \ s] * $ correspond exactement au mot-clé 2-mot ^ [^ \ s] * \ s [^ \ s] * correspond aux mots-clés d'au moins 2 mots (2 et plus) ^ ([^ \ s] * \ s) 2 [^ \ s] * $ correspond exactement au mot-clé de 3 mots ^ ([^ \ s] * \ s ) 4 [^ \ s] * $ correspond aux mots clés de 5 mots et plus (longtail)

    Les utilisateurs de Google Analytics et de Webmaster Tools apprécieront vraiment cette expression régulière. Il peut trier et organiser les mots clés en fonction du nombre de mots utilisés dans une recherche..

    Cela peut être numériquement spécifique (c'est-à-dire seulement 5 mots) ou peut correspondre à une plage de mots (c'est-à-dire 2 mots ou plus). Lorsqu'il est utilisé pour trier les données d'analyse, il s'agit d'une expression puissante. (La source)

    10. Trouver une chaîne valide en Base64 en PHP

    \? php [\ t] eval \ (base64_decode \ (\ '([A-Za-z0-9 + /] 4) * ([A-Za-z0-9 + /] 3 = | [A-Za-z0-9 + /] 2 ==)?) 1 \ '\) \) \;

    Si vous êtes un développeur PHP, vous aurez peut-être besoin d'analyser le code à la recherche d'objets binaires codés en Base64. Cet extrait de code peut être appliqué à tout le code PHP et permettra de rechercher les chaînes Base64 existantes. (La source)

    11. Numéro de téléphone valide

    ^ \ +? \ d 1,3? [-.]? \ (? (?: \ d 2,3) \)? [-.]? \ d \ d \ d [-.]? \ d \ d \ d \ d $

    Court, doux et précis. Ce code d'expression régulière validera toute syntaxe de numéro de téléphone traditionnelle basée principalement sur le style américain des numéros de téléphone.

    Puisque cela peut devenir un sujet assez compliqué, je vous recommande de parcourir ce fil de pile pour obtenir des réponses plus détaillées. (La source)

    12. espaces blancs de début et de fin

    ^ [\ s] + | [\ s] + $

    Utilisez cet extrait de code pour extraire les espaces de début / de fin d'une chaîne. Cela peut ne pas être grave, mais cela peut parfois affecter la sortie lorsqu'il est extrait d'une base de données ou appliqué à un autre encodage de document. (La source)

    13. Tirez sur la source d'image)

    \< *[img][^\>] * [src] * = * [\ "\ '] 0,1 ([^ \" \' \>] *)

    Si, pour une raison quelconque, vous devez extraire le code source d'une image directement à partir de HTML, cet extrait de code est la solution idéale. Bien qu'il puisse fonctionner sans problème sur le backend, les développeurs JS frontend devraient plutôt s'appuyer sur la méthode .attr () de jQuery pour le frontend. (La source)

    14. Valider la date au format JJ / MM / AAAA

    ^ (? :( ?: 31 (\ / | - | \.) (?: 0? [13578] | 1 [02])) | 1 | (? :( ?: 29 | 30) (\ / | - | \.) (?: 0? [1,3-9] | 1 [0-2]) \ 2)) (? :( ?: 1: 6-9] | [2-9] \ d)? \ d 2) $ | ^ (?: 29 (\ / | - | \.) 0? 2 \ 3 (? :(? :( ?: 1: 6-9] | [2-9] \ d )? (?: 0 [48] | [2468] [048] | [13579] [26]) | (? :( ?: 16 | [2468] [048] | [3579] [26]) 00)) )) $ | ^ (?: 0? [1-9] | 1 \ d | 2 [0-8]) (\ / | - | \.) (? :( ?:(? 9? [1-9]) | (?: 1 [0-2])) \ 4 (? :( ?: 1: [6-9] | [2-9] \ d)? \ D 2) $

    Les dates sont délicates car elles peuvent apparaître sous forme de texte + chiffres, ou simplement sous forme de chiffres de formats différents. PHP a une fonction de date fantastique, mais ce n'est pas toujours le meilleur choix pour tirer une chaîne brute. Pensez plutôt à utiliser cette expression régulière créée pour cette syntaxe de date spécifique. (La source)

    15. Correspondance d'identifiant vidéo YouTube

    /http:\/\/(?:youtu\.be\/|(?:&azhr ☎inge,3,2\\\ )?youtube\.com\/watch(?:\?|#\!)v =) ([\ w -] 11). * / gi

    YouTube a conservé la même structure d'URL pendant des années parce que cela fonctionne. C'est également le site de partage de vidéos le plus populaire sur le Web. Par conséquent, les vidéos YouTube génèrent le plus de trafic..

    Si vous avez besoin d'extraire un identifiant de vidéo YouTube à partir d'une URL, ce code regex est parfait et devrait parfaitement fonctionner pour toutes les variantes de structures d'URL YouTube. (La source)

    16. ISBN valide

    / \ b (?: ISBN (? ::? |))? ((?: 97 [89])? \ d 9 [\ dx]) \ b / i

    Les livres imprimés suivent un système de numérotation appelé ISBN. Cela peut devenir assez délicat quand on considère les différences entre ISBN-10 et ISBN-13..

    Toutefois, cet extrait de code incroyable vous permet de valider un numéro ISBN et de vérifier s'il s'agit de l'ISBN 10 ou 13. Tout le code est écrit en PHP; il devrait donc s'avérer extrêmement utile pour les développeurs Web. (La source)

    17. Vérifiez le code postal

    ^ \ d 5 (?: [- \ s] \ d 4)? $

    Le créateur de cet extrait a non seulement publié son travail gratuitement, mais il a également pris le temps de l'expliquer. Vous trouverez cet extrait utile, que vous correspondiez à un code postal typique à 5 chiffres ou à la version plus longue à 9 chiffres..

    N'oubliez pas que ceci concerne principalement le système américain de codes postaux, ce qui peut nécessiter des ajustements pour d'autres pays. (La source)

    18. Nom d'utilisateur Twitter valide

    / @ ([A-Za-z0-9 _] 1,15) /

    Voici un très petit extrait de code permettant de faire correspondre les noms d'utilisateurs Twitter trouvés dans une chaîne. Il vérifie pour @mention syntaxe parfaite pour analyser automatiquement le contenu d'un tweet (ou tweets). (La source)

    19. Numéros de carte de crédit

    ^ (?: 4 [0-9] 12 (?: [0-9] 3)? | 5 [1-5] [0-9] 14 | 6 (?: 011 | 5 [ 0-9] [0-9]) [0-9] 12 | 3 [47] [0-9] 13 | 3 (?: 0 [0-5] | [68] [0-9 ]) [0-9] 11 | (?: 2131 | 1800 | 35 \ d 3) \ d 11) $

    La validation d'un numéro de carte de crédit nécessite souvent une plateforme sécurisée hébergée ailleurs en ligne. Mais regex peut être utilisé pour les exigences minimales d’un numéro de carte de crédit typique.

    Vous trouverez une liste plus complète des codes pour les cartes individuelles ici. Cela inclut les cartes Visa, MasterCard, Discover et bien d’autres. (La source)

    20. Trouver les attributs CSS

    ^ \ s * [a-zA-Z \ -] + \ s * [:] 1 \ s [a-zA-Z0-9 \ s. #] + [;] 1

    Il peut être rare d'exécuter regex sur CSS mais ce n'est pas une situation incroyablement étrange non plus.

    Cet extrait de code peut être utilisé pour extraire toutes les propriétés et valeurs CSS correspondantes des sélecteurs individuels. Il peut être utilisé pour différentes raisons, éventuellement pour afficher des fragments de CSS ou pour supprimer des propriétés en double. (La source)

    21. Supprimer les commentaires HTML

    Si, pour une raison quelconque, vous devez supprimer tous les commentaires d’un bloc HTML, il s’agit du code regex à utiliser. Avec l'expression, vous trouverez un exemple PHP utilisant preg_replace. (La source)

    22. URL du profil Facebook

    /(?:http:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)? (?: [\ w \ -] * \ /) * ([\ w \ -] *) /

    Facebook est incroyablement populaire et a passé par de nombreux systèmes d'URL différents. Dans le cas où vous prenez les URL de profil des utilisateurs, il peut être utile d'analyser les chaînes et de confirmer qu'elles sont correctement structurées. Cet extrait peut faire exactement cela et il est parfait pour tous les liens de style FB. (La source)

    23. Vérifier la version d'Internet Explorer

    ^. * MSIE [5-8] (?: \. [0-9] +)? (?!. * Trident \ / [5-9] \. 0). * $

    Le passage de Microsoft à Edge n’a pas été unanime et de nombreuses personnes s’en remettent encore à Internet Explorer classique. Les développeurs doivent souvent rechercher des versions d'IE pour gérer les incohérences avec les moteurs de rendu..

    Cet extrait peut être utilisé en JavaScript pour tester un agent de navigateur en fonction de la version d'Internet Explorer (5-11) utilisée. (La source)

    24. Prix extrait

    /(\$[0-9 ,]+(\.[0-9]2urther)?)/

    Les prix sont proposés dans une variété de formats contenant des décimales, des virgules et des symboles monétaires. Cette expression régulière peut vérifier tous ces différents formats pour extraire un prix de n'importe quelle chaîne. (La source)

    25. Analyser l'en-tête de messagerie

    /\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Zhnear2,6Buch\b/i

    Avec cette seule ligne de code, vous pouvez analyser un en-tête d’e-mail pour en extraire “à” informations de l'en-tête. Il peut être utilisé en tandem avec plusieurs emails réunis..

    Si vous préférez éviter les expressions rationnelles pour cette tâche, vous pouvez plutôt vous fier à une bibliothèque d'analyse. (La source)

    26. Faire correspondre un type de fichier particulier

    /^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i

    Lorsque vous traitez avec différents formats de fichiers tels que .xml, .html et .js, il peut être utile de vérifier les fichiers localement et téléchargés par les utilisateurs. Cet extrait extrait une extension de fichier pour vérifier sa validité parmi une série d'extensions valides pouvant être modifiées à tout moment. (La source)

    27. Correspondre à une chaîne d'URL

    /[-a-zA-Z0-9@:%_\+.~#?&//=eakfasts&lang=fr,25,256\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ -9 @:% _ \ +. ~ #? & // =] *)? / Gi

    Cet extrait peut être utilisé à la fois pour les chaînes HTTPS et HTTP pour vérifier si le texte correspond à la syntaxe du domaine TLD traditionnel. Il y a aussi une implémentation simple de cette regex en utilisant RegExp de JavaScript. (La source)

    28. Append rel =”pas de suivi” aux liens

    (] *) (href = "https?: //) ((?! (?: (?: www \))? '. implode (' | (?: www \.???, $ follow_list). ') ) [^ "] +)" ((?!. * \ brel =) [^>] *) (?: [^>] *)>

    Si vous travaillez avec un lot de code HTML, il peut être fastidieux d'appliquer un travail manuel à des tâches répétitives. Les expressions régulières sont parfaites pour cette occasion et vous feront gagner beaucoup de temps.

    Cet extrait peut extraire tous les liens d'ancrage d'un bloc de HTML et ajouter le rel =”pas de suivi” attribuer à chaque élément. Le développeur qui a écrit ce code a eu la gentillesse de publier l'expression brute et un exemple de travail en PHP.

    29. Correspondance de requête multimédia

    / @ media ([^ ] +) \ ([\ s \ s] +?) \ s * / g

    Divisez les requêtes de médias CSS en leurs paramètres et propriétés. Cela peut vous aider à analyser les CSS externes de manière plus propre, en mettant davantage l'accent sur le fonctionnement du code. (La source)

    30. Syntaxe de recherche Google

    /([+-unset?(?:'.+?'|".+?"|[++-- 1 [^] *)) / g

    Vous pouvez créer votre propre code regex pour manipuler du texte interrogeable à l'aide de la syntaxe de marque déposée de Google. Le signe plus (+) indique des mots clés supplémentaires et le signe moins (-) des mots qui doivent être ignorés et supprimés des résultats..

    C'est un extrait assez compliqué, mais bien utilisé, il peut servir de base à la création de votre propre algorithme de recherche. (La source)

    Emballer

    La voie à suivre pour maîtriser regex est longue mais enrichissante si vous vous en tenez à elle. Au-delà des outils de regex typiques, le meilleur moyen d’étudier est la répétition. Essayez de créer des applications Web qui s'appuient sur ces extraits de code regex pour apprendre comment ils fonctionnent dans une application Web fonctionnelle. Et si vous avez d'autres extraits suggérant de les publier dans la zone de commentaires ci-dessous.

    Maintenant lis:

    50 extraits de code CSS utiles que chaque concepteur devrait avoir