JavaScript Regex Cheat Sheet

Pour réussir à utiliser des expressions régulières, vous devez savoir ce que font chaque caractère spécial, indicateur et méthode. Ceci est un aide-mémoire sur les expressions régulières auquel vous pouvez vous référer lorsque vous essayez de vous rappeler le fonctionnement d'une méthode, d'un caractère spécial ou d'un indicateur..

Définir une expression régulière en JavaScript

Il existe deux manières de définir une expression régulière en JavaScript..

  • var rgx = / ^ (\ d +) / - Vous pouvez utiliser un littéral d'expression régulière et insérer le motif entre des barres obliques. Ceci est évalué au moment de la compilation et offre de meilleures performances si l'expression régulière reste constante..
  • var rgx = new RegExp ('^ (\ d +)') - La fonction constructeur est utile lorsque l'expression régulière peut être modifiée par programmation. Ceux-ci sont compilés pendant l'exécution.

Faire correspondre un jeu de caractères spécifique

Les séquences suivantes peuvent être utilisées pour faire correspondre un jeu de caractères spécifique.

  • \ w - Correspond à tous les caractères des mots. Les caractères du mot sont alphanumériques (a-z, caractères A-Z et trait de soulignement).
  • \ W - Correspond aux caractères autres que des mots. Tout sauf les caractères alphanumériques et le trait de soulignement.
  • \ré - Correspond aux caractères numériques. N'importe quel chiffre de 0 à 9.
  • \RÉ - Correspond aux caractères non numériques. Tout sauf 0 à 9.
  • \ s - Correspond aux caractères d'espacement. Cela inclut les espaces, les tabulations et les sauts de ligne.
  • \ S - Correspond à tous les autres caractères sauf les espaces.
  • . - Correspond à n'importe quel caractère sauf les sauts de ligne.
  • [A à Z] - Correspond aux caractères d'une plage. Par exemple, [A-E] correspondra à A, B, C, D et E.
  • [ABC] - Correspond à un personnage de l'ensemble donné. Par exemple, [AMT] correspondra seulement à A, M et T.
  • [^ ABC] - Correspond à tous les personnages ne pas présent dans l'ensemble donné. Par exemple, [^ A-E] correspond à tous les autres caractères sauf A, B, C, D et E.

Spécification du nombre de caractères à faire correspondre

Toutes les expressions ci-dessus correspondront à un seul caractère à la fois. Vous pouvez ajouter des quantificateurs pour spécifier le nombre de caractères à inclure simultanément dans la correspondance..

  • + - Correspond à une ou plusieurs occurrences du jeton précédent. Par exemple, \ w+ reviendra ABD12D comme un seul match au lieu de six matchs différents.
  • * - Correspond à zéro ou plusieurs occurrences du jeton précédent. Par exemple, b \ w * correspond aux parties en gras dans b, chauve souris, bajhdsfbfjhbe. Fondamentalement, il correspond à zéro ou plusieurs caractères après «b».
  • m, n - Correspond au moins m et au plus n occurrences du jeton précédent. m, correspondra à au moins m occurrences, et il n'y a pas de limite supérieure pour le match. k correspondra exactement à k occurrences du jeton précédent.
  • ? - Correspond à zéro ou une occurrence du caractère précédent. Par exemple, cela peut être utile lorsque vous associez deux variantes d’orthographe pour le même travail. Par exemple, /comportement/ correspondra à la fois comportement et comportement.
  • | - Correspond à l'expression avant ou après le caractère de pipe. Par exemple, / se (a | e) / correspond à la fois voir et mer.

Expressions régulières liées à la parenthèse

  • (ABC) - Cela regroupera plusieurs jetons et mémorisera la sous-chaîne correspondante pour une utilisation ultérieure. Ceci est appelé un groupe de capture.
  • (?:ABC) - Cela regroupera également plusieurs jetons mais ne se souviendra pas du match. C'est un groupe non capturant.
  • \ d + (? = ABC) - Cela correspondra au (x) jeton (s) précédant le (? = ABC) partie seulement si elle est suivie par abc. La partie abc ne sera pas inclus dans le match. le \ré la partie est juste un exemple. Il pourrait s'agir d'une autre chaîne d'expression régulière.
  • \ d + (?! ABC) - Cela correspondra au (x) jeton (s) précédant le (?!ABC) partie seulement si c'est ne pas suivi par abc. La partie abc ne sera pas inclus dans le match. le \ré la partie est juste un exemple. Il pourrait s'agir d'une autre chaîne d'expression régulière.

Autres personnages d'expression régulière

Il existe également d'autres caractères d'expression régulière qui n'ont pas été traités dans les sections précédentes:

  • ^ - Recherchez l'expression régulière au début de la chaîne ou au début d'une ligne si l'indicateur multiligne est activé.
  • $ - Recherchez l'expression régulière à la fin de la chaîne ou à la fin d'une ligne si l'indicateur multiligne est activé.
  • \ b - Ne correspond au jeton précédent que s'il existe une limite de mot.
  • \ B - Ne correspond au jeton précédent que s'il n'y a pas de limite de mot.

Utilisation de drapeaux avec des expressions régulières

Les drapeaux peuvent être utilisés pour contrôler la manière dont une expression régulière doit être interprétée. Vous pouvez utiliser des indicateurs seuls ou ensemble dans l'ordre de votre choix. Ce sont les cinq drapeaux disponibles en JavaScript. 

  • g - Recherche dans la chaîne toutes les correspondances de l'expression donnée au lieu de ne renvoyer que la première.
  • je - Faites en sorte que la recherche ne soit pas sensible à la casse afin que des mots tels que Apple, aPPLe et apple puissent être associés en même temps.
  • m - Ce drapeau fera en sorte que le ^ et $ les jetons recherchent une correspondance au début ou à la fin de chaque ligne au lieu de la chaîne entière.
  • vous - Cet indicateur vous permettra d'utiliser des échappements de points de code Unicode dans votre expression régulière..
  • y - Cela indiquera à JavaScript de ne rechercher qu'une correspondance à la position actuelle dans la chaîne cible..

Vous pouvez spécifier des indicateurs pour une expression régulière en JavaScript, soit en les ajoutant à la fin d'un littéral d'expression régulière, soit en les transmettant au RegExp constructeur. Par exemple, / cat / i correspond à toutes les occurrences de chat quel que soit le cas, et RegExp ("chat", 'i') fait la même chose.

Méthodes utiles d'expression régulière en JavaScript

Les expressions régulières que vous créez à l'aide des drapeaux et des séquences de caractères que nous avons abordés jusqu'à présent doivent être utilisées avec différentes méthodes pour rechercher, remplacer ou scinder une chaîne. Voici quelques méthodes liées aux expressions régulières.

  • tester() - Vérifiez si la chaîne principale contient une sous-chaîne qui correspond au modèle spécifié par l'expression régulière donnée. Il retourne vrai sur un match réussi et faux autrement.
var textA = 'J'aime beaucoup les pommes'; var textB = 'J'aime les pommes'; var regexOne = / pommes $ / i // Résultat: false console.log (regexOne.test (textA)); // Sortie: true console.log (regexOne.test (textB)); 

Dans l'exemple ci-dessus, l'expression régulière est supposée rechercher le mot pommes seulement à la fin de la chaîne. C'est pourquoi nous avons faux dans le premier cas.

  • chercher() - Vérifiez si la chaîne principale contient une sous-chaîne qui correspond au modèle spécifié par l'expression régulière donnée. Il retourne l'index du match en cas de succès et -1 autrement.
var textA = 'J'aime beaucoup les pommes'; var regexOne = / pommes /; var regexTwo = / pommes / i; // Sortie: -1 console.log (textA.search (regexOne)); // Sortie: 7 console.log (textA.search (regexTwo));

Dans ce cas, la première expression régulière renvoyée -1 parce qu'il n'y avait pas de correspondance sensible à la casse.

  • rencontre() - Recherche si la chaîne principale contient une sous-chaîne qui correspond au modèle spécifié par l'expression régulière donnée. Si la g le drapeau est activé, plusieurs correspondances seront renvoyées sous forme de tableau.
var textA = 'Tout ce que je vois ici sont des pommes, des pommes et des pommes'; var regexOne = / pommes / gi; // Sortie: ["pommes", "Pommes", "apPleS"] console.log (textA.match (regexOne));
  • exec () - Recherche si la chaîne principale contient une sous-chaîne qui correspond au modèle spécifié par l'expression régulière donnée. Le tableau retourné contiendra des informations sur la correspondance et les groupes de capture.
var textA = 'Vous aimez les pommes?'; var regexOne = / pommes /; // Sortie: pommes console.log (regexOne.exec (textA) [0]); // Sortie: aimez-vous les pommes? console.log (regexOne.exec (textA) .input); 
  • remplacer() - Recherchez une sous-chaîne correspondant au modèle donné et remplacez-la par la chaîne de remplacement fournie..
var textA = 'Aimez-vous les aPPles?'; var regexOne = / pommes / i // Sortie: Aimez-vous les mangues? console.log (textA.replace (regexOne, 'mangues'));
  • Divisé() - Cette méthode vous permettra de scinder la chaîne principale en sous-chaînes en fonction du séparateur spécifié en tant qu'expression régulière..
var textA = 'Cette chaîne 593 sera brok294en aux endroits où d1gits sont.'; var regexOne = / \ d + / g // Sortie: ["Cette", "chaîne sera cassée", "en aux endroits où d", "gits sont." ] console.log (textA.split (regexOne))

Conclusion

Dans les tutoriels précédents, j'ai abordé les bases des expressions régulières ainsi que des expressions plus complexes qui peuvent s'avérer utiles de temps en temps. Ces deux tutoriels expliquent comment différents caractères ou séquences de caractères fonctionnent dans les expressions régulières.

  • Guide du débutant pour les expressions régulières en JavaScript

    Les expressions régulières vous permettent de manipuler des chaînes avec votre code. Ils sont très puissants, mais ils ont une syntaxe spéciale qui peut prêter à confusion. Ce tutoriel…
    Monty Shokeen
    Expressions régulières
  • Expressions régulières JavaScript: au-delà de l'essentiel

    Ce didacticiel vous expliquera comment utiliser des expressions régulières sophistiquées en JavaScript pour faire correspondre les modèles d'une chaîne. Nous allons commencer par un rapide…
    Monty Shokeen
    JavaScript

Si les expressions régulières vous déroutent toujours, je vous conseillerais de continuer à vous entraîner et de voir comment les autres personnes créent des expressions régulières pour créer un motif particulier..