ES6 - RegExp
Une expression régulière est un objet qui décrit un modèle de caractères. Les expressions régulières sont souvent abrégées "regex" ou "regexp».
Le JavaScript RegExp La classe représente des expressions régulières, et String et RegExp définissent des méthodes qui utilisent des expressions régulières pour exécuter de puissantes fonctions de correspondance de modèles et de recherche et remplacement sur le texte.
Une expression régulière peut être définie comme -
var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;
L'attribut peut avoir n'importe quelle combinaison des valeurs suivantes.
Sr.Non | Attribut et description |
---|---|
1 | G Match global |
2 | I Ignorer la casse |
3 | M Multiline; traiter les caractères de début et de fin (^ et $) comme travaillant sur plusieurs lignes (c'est-à-dire correspondre au début ou à la fin de chaque ligne (délimitée par \ n ou \ r), pas seulement le tout début ou la fin de toute la chaîne d'entrée ) |
4 | U Unicode; traiter le motif comme une séquence de points de code unicode |
5 | Y Gluant; correspond uniquement à partir de l'index indiqué par la propriété lastIndex de cette expression régulière dans la chaîne cible (et n'essaie pas de faire la correspondance à partir des index ultérieurs) |
Construire des expressions régulières
Supports
Les crochets ([]) ont une signification particulière lorsqu'ils sont utilisés dans le contexte d'expressions régulières. Ils sont utilisés pour trouver une gamme de caractères.
Sr.Non | Expression et description |
---|---|
1 | [...] N'importe quel caractère entre les crochets |
2 | [^...] Tout caractère non compris entre les crochets |
3 | [0-9] Il correspond à n'importe quel chiffre décimal de 0 à 9 |
4 | [a-z] Il correspond à n'importe quel caractère en minuscules a en minuscules z |
5 | [A-Z] Il correspond à n'importe quel caractère en majuscule A par Z majuscule |
6 | [a-Z] Il correspond à n'importe quel caractère en minuscules a par Z majuscule |
Les plages indiquées ci-dessus sont générales; vous pouvez également utiliser la plage [0-3] pour correspondre à tout chiffre décimal compris entre 0 et 3, ou la plage [bv] pour correspondre à tout caractère minuscule allant de b à v.
Quantificateurs
La fréquence ou la position des séquences de caractères entre crochets et des caractères uniques peuvent être désignées par un caractère spécial. Chaque caractère spécial a une connotation spécifique. le+, *, ?, et $ les drapeaux suivent tous une séquence de caractères.
Sr.Non | Expression et description |
---|---|
1 | p+ Il correspond à toute chaîne contenant au moins un p. |
2 | p* Il correspond à toute chaîne contenant zéro ou plus p's |
3 | p? Il correspond à toute chaîne contenant un ou plusieurs p's |
4 | p{N} Il correspond à toute chaîne contenant une séquence de N p's |
5 | p{2,3} Il correspond à n'importe quelle chaîne contenant une séquence de deux ou trois p's |
6 | p{2, } Il correspond à toute chaîne contenant une séquence d'au moins deux p's |
sept | p$ Il correspond à n'importe quelle chaîne avec p à la fin |
8 | ^p Il correspond à n'importe quelle chaîne avec p au début |
9 | [^a-zA-Z] Il correspond à toute chaîne ne contenant aucun des caractères compris entre a à travers z et A à travers Z |
dix | p.p Il correspond à toute chaîne contenant p, suivi de n'importe quel caractère, à son tour suivi d'un autre p |
11 | ^.{2}$ Il correspond à toute chaîne contenant exactement deux caractères |
12 | <b>(.*)</b> Il correspond à toute chaîne comprise entre <b> et </b> |
13 | p(hp)* Il correspond à toute chaîne contenant un p suivi de zéro ou plusieurs instances de la séquence hp |
Caractères littéraux
Sr.Non | Caractère et description |
---|---|
1 | Alphanumeric Lui-même |
2 | \0 Le caractère NULL (\ u0000) |
3 | \t Onglet (\ u0009) |
4 | \n Nouvelle ligne (\ u000A) |
5 | \v Onglet Vertical (\ u000B) |
6 | \f Saut de formulaire (\ u000C) |
sept | \r Retour chariot (\ u000D) |
8 | \xnn Le caractère latin spécifié par le nombre hexadécimal nn; par exemple, \ x0A est identique à \n |
9 | \uxxxx Le caractère Unicode spécifié par le nombre hexadécimal xxxx; par exemple, \ u0009 équivaut à\t |
dix | \cX Le caractère de contrôle ^ X; par exemple, \ cJ équivaut au caractère de nouvelle ligne\n |
Méta-caractères
UNE meta-character est simplement un caractère alphabétique précédé d'une barre oblique inverse qui agit pour donner à la combinaison une signification particulière.
Par exemple, vous pouvez rechercher une grosse somme d'argent en utilisant le '\d'méta-caractère: / ([\ d] +) 000 /. Ici,\d recherchera n'importe quelle chaîne du caractère numérique.
Le tableau suivant répertorie un ensemble de méta-caractères qui peuvent être utilisés dans les expressions régulières de style PERL.
Sr.Non | Caractère et description |
---|---|
1 | . Un seul personnage |
2 | \s Un caractère d'espacement (espace, tabulation, nouvelle ligne) |
3 | \S Caractère sans espace |
4 | \d Un chiffre (0-9) |
5 | \D Un non-chiffre |
6 | \w Un caractère de mot (az, AZ, 0-9, _) |
sept | \W Un caractère autre qu'un mot |
8 | [\b] Un retour arrière littéral (cas particulier) |
9 | [aeiou] Correspond à un seul caractère dans l'ensemble donné |
dix | [^aeiou] Correspond à un seul caractère en dehors de l'ensemble donné |
11 | (foo|bar|baz) Correspond à l'une des alternatives spécifiées |
Propriétés RegExp
Sr.Non | Propriétés et description |
---|---|
1 | RegExp.prototype.flags Une chaîne qui contient les indicateurs de l'objet RegExp |
2 | RegExp.prototype.global S'il faut tester l'expression régulière par rapport à toutes les correspondances possibles dans une chaîne ou uniquement par rapport à la première |
3 | RegExp.prototype.ignoreCase Indique s'il faut ignorer la casse lors d'une tentative de correspondance dans une chaîne |
4 | RegExp.prototype.lastIndex Indique si la propriété en lecture / écriture des objets RegExp. |
5 | RegExp.prototype.multiline Recherche ou non dans les chaînes sur plusieurs lignes |
6 | RegExp.prototype.source Le texte du motif |
Méthodes RegExp
Sr.Non | Méthode et description |
---|---|
1 | RegExp.prototype.exec () Exécute une recherche de correspondance dans son paramètre de chaîne |
2 | RegExp.prototype.test () Teste une correspondance dans son paramètre de chaîne |
3 | RegExp.prototype.match () Effectue une correspondance avec la chaîne donnée et renvoie le résultat de la correspondance |
4 | RegExp.prototype.replace () Remplace les correspondances dans la chaîne donnée par une nouvelle sous-chaîne |
5 | RegExp.prototype.search () Recherche la correspondance dans la chaîne donnée et renvoie l'index du modèle trouvé dans la chaîne |
6 | RegExp.prototype.split () Divise la chaîne donnée en un tableau en séparant la chaîne en sous-chaîne |
sept | RegExp.prototype.toString () Renvoie une chaîne représentant l'objet spécifié. Remplace la méthodeObject.prototype.toString () |