Il existe deux façons de définir des expressions régulières en JavaScript.
1.Gegexp Constructeur
Var Pattern = new regexp ("[BC] à", "i");
Il reçoit deux paramètres: l'un est le modèle de chaîne à correspondre, et l'autre est la chaîne de drapeau en option.
2. Littéral
Var Match = / [BC] AT / I;
Le modèle d'appariement des expressions régulières prend en charge trois chaînes de drapeau:
G: Global, Global Search Mode, qui sera appliqué à toutes les chaînes, au lieu d'arrêter la recherche lorsque la première correspondance sera recherchée;
I: Case ingore, ignorer le cas de lettre, c'est-à-dire, ignorez le modèle et le cas de chaîne lors de la détermination des correspondances;
M: Lignes multiples, motif multiligne, c'est-à-dire lorsque la recherche atteint la fin d'une ligne de texte, elle continuera à chercher s'il y a une correspondance sur la ligne suivante.
La différence entre ces deux méthodes de création d'expressions régulières est que l'expression régulière littérale partage toujours la même instance regexp, et chaque nouvelle instance regexp créée à l'aide du constructeur est une nouvelle instance.
Métacharacter
Les métacharacteurs sont des personnages ayant des significations spéciales. Les principaux métacharacteurs des expressions régulières sont:
([{/ ^ $ |)? * +.
Les métachars ont des significations différentes dans différentes combinaisons.
Caractères spéciaux prédéfinis
Classe de personnage classe simple
Généralement, une expression régulière a un caractère correspondant à un caractère dans une chaîne, mais nous pouvons utiliser [] pour construire une classe simple pour représenter une classe de caractères qui correspondent à une certaine fonctionnalité. Par exemple:
[ABC] peut faire correspondre les caractères entre parenthèses A, B, C ou toute combinaison de celle-ci.
Classe inversée
Étant donné que [] peut construire une classe, vous penserez naturellement à la classe correspondante qui ne contient pas le contenu entre parenthèses. Cette classe est appelée une classe inversée. Par exemple, [^ ABC] peut correspondre aux caractères qui ne sont pas a ou b ou c.
Catégorie de portée
Parfois, il est trop difficile de faire correspondre les caractères un par un et le type de match est le même. À l'heure actuelle, nous pouvons utiliser la ligne de connexion "-" pour représenter le contenu entre un certain intervalle fermé. Par exemple, la correspondance de toutes les lettres minuscules peut utiliser [AZ], comme suit:
La correspondance de tous les 0 à 9 peut être exprimée en utilisant [0-9]:
Classes prédéfinies
Pour plusieurs classes que nous avons créées ci-dessus, les expressions régulières nous fournissent plusieurs classes prédéfinies couramment utilisées pour correspondre aux caractères communs, comme suit:
| personnage | Catégorie équivalente | signification |
| . | [^ / n / r] | Faites correspondre tous les caractères sauf le retour du chariot et la pause de ligne |
| /d | [0-9] | Numéro de caractères |
| /D | [^ 0-9] | Caractères non nucères |
| / | [/ t / n / x0b / f / r] | Personnages d'espace blanc |
| / | [^ / t / n / x0b / f / r] | Personnages non blancs |
| / w | [a-za-z_0-9] | Caractères de mots (lettres, chiffres et soulignements) |
| / W | [^ a-za-z_0-9] | Personnages sans mot |
quantificateur
La méthode ci-dessus correspond aux caractères individuels. Si un personnage apparaît plusieurs fois de suite, il sera très difficile de correspondre selon la méthode ci-dessus. Par conséquent, nous nous demandons s'il existe d'autres méthodes qui peuvent correspondre directement aux personnages qui apparaissent à plusieurs reprises. Les expressions régulières nous fournissent certains quantificateurs, comme suit:
| personnage | signification |
| ? | Zéro ou une fois (jusqu'à une fois) |
| + | Apparaissent une fois ou plus (au moins une fois) |
| * | Zéro ou plusieurs occurrences (à tout moment) |
| {n} | Apparaît n fois |
| {n, m} | Apparaissent n à m fois |
| {n,} | Apparaissent au moins n fois |
Modes gourmands et non grisants
Pour la méthode d'appariement de {n, m}, N ou M devrait-il être apparié? Cela implique le problème des modèles de correspondance. Par défaut, les quantificateurs sont autant de caractères correspondants que possible, ce qui est appelé mode gourmand, par exemple:
var num = '123456789'; num.match (// d {2,4} / g); // [1234], [5678], [9]Pour le mode droit et non incorrect, il vous suffit d'ajouter "?" Après le quantificateur. Par exemple, {n, m} ?, Il doit correspondre aux moindres caractères, comme suit:
var num = '123456789'; num.match (// d {2,4}? / g); // [12], [34], [56], [78], [9]Regroupement
Les quantificateurs ne peuvent être appariés que plusieurs fois pour un seul caractère. Et si nous voulons faire correspondre un certain ensemble de caractères plusieurs fois? Dans les expressions régulières, les supports peuvent définir une chaîne dans son ensemble dans son ensemble.
Si nous voulons faire correspondre le mot Apple apparaît 4 fois, nous pouvons faire correspondre (Apple) {4} comme ceci, comme suit:
Si vous souhaitez correspondre à Apple ou à l'orange 4 fois, vous pouvez insérer le caractère de tuyau "|", par exemple:
(Apple | orange) {4}
Si plusieurs supports apparaissent dans une expression régulière en utilisant le regroupement, c'est-à-dire plusieurs groupes, le résultat correspondant regroupera et numérotera également les correspondances, par exemple:
(Apple) / D + (orange)
Si nous ne voulons pas capturer certains paquets, nous avons juste besoin de suivre un point d'interrogation et un côlon immédiatement avant les supports du paquet, par exemple:
(?: Apple) / d + (orange)
limite
Les expressions régulières nous fournissent également plusieurs caractères correspondants aux limites couramment utilisés, tels que:
| personnage | signification |
| ^ | Commencez par xx |
| $ | Se terminant par xx |
| / b | Limite de mot, se référant à des caractères autres que [a-za-z_0-9] |
| / B | Limite non mot-mot |
Le mot limite correspond à une position, un côté de cette position est les caractères qui composent le mot, mais l'autre côté est la position de début ou de fin d'un caractère ou d'une chaîne non mot.
Prévisualisation
Lookahead est utilisé pour correspondre à la prochaine occurrence d'un jeu de caractères spécifique ou non.
| expression | signification |
| exp1 (? = exp2) | Le match est suivi par Exp2 Exp1 |
| Exp1 (?! Exp2) | Faire correspondre exp1 qui n'est pas exp2 après |
Voir un exemple:
Apple (? = orange)
(/Apple(?=orange)/).test('Appleorange123 '); // true (/Apple(?=orange)/).test('Applepear345 '); //FAUXJetons un coup d'œil à un autre exemple:
Apple (?! Orange)
(/Apple(?!orange)/).test('Appleorange123 '); // false (/Apple(?!orange)/).test('Applepear345 '); //vraiL'article ci-dessus est un cliché sur la syntaxe d'expression régulière JavaScript. C'est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.