Dans le passé, JS a rarement utilisé l'expression régulière de JS.
Récemment, j'ai rencontré des expressions régulières qui doivent être utilisées et étudier par le fait
Il existe deux méthodes de définition d'objets d'expression régulière ::
1. La première définition:
Nouveau regexp (modèle, attributs);
Parmi eux, le modèle est le contenu d'expression de l'expression, comme si ce qui précède montre ABC
Attributs: G, correspondance globale, je ne fais pas de distinction entre les petites et minuscules, M exécute la correspondance multi-lignes, la plupart des utilisations de G et I
2. La deuxième définition: / modèle / attributs.
Comme: var reg = / abc / g;
Certaines règles exprimées dans l'expression régulière ne sont plus expliquées ici, seulement la différence entre l'exec et la correspondance:
1. EXEC est une méthode d'expression régulière, pas une méthode de chaîne.
Comme la définition ci-dessus
var reg = new regexp ("ABC");
var str = "3abc4, 5abc6";
reg.exec (str);
2. La correspondance est une méthode pour la chaîne pour effectuer des règles d'expression régulières.
var reg = new regexp ("ABC");
var str = "3abc4, 5abc6";
str.match (par exemple);
3. L'exec et le retour de correspondance sont des tableaux;
Si l'expression régulière exécutée par Exec n'a pas de sous-expression (contenu entre les petites supports, tels que / s *) / (/ s *) / (/ s *), s'il y a une correspondance, renvoyez le premier contenu de chaîne correspondant Contenu, il n'y a qu'un seul élément pour le moment, s'il n'est pas assorti et retourné à NULL;
var reg = new regexp ("ABC");
var str = "3abc4, 5abc6";
alerte (reg.exec (str));
alerte (str.match (reg));
Exécuter le même code, vous constaterez que le contenu des deux est le même: ABC,
4. Si l'objet d'expression régulière est défini comme une correspondance globale, comme:
var reg = new regexp ("abc", "g");
var str = "3abc4, 5abc6";
alerte (reg.exec (str));
alerte (str.match (reg));
Pour ABC et ABC, ABC; car le match effectue une requête de correspondance globale;
5. Lorsque cela signifie que la sous-expression est contenue dans:
var reg = new regexp ("a (bc)");
var str = "3abc4, 5abc6";
alerte (reg.exec (str));
alerte (str.match (reg));
Vous constaterez que les résultats des deux s'exécutent sont: ABC, BC;
6. Lorsque l'objet d'expression régulière est défini comme un match global
var reg = new regexp ("a (bc)", "g");
var str = "3abc4, 5abc6";
alerte (reg.exec (str));
alerte (str.match (reg));
Le résultat des deux retournés est ABC, BC et ABC, ABC,
Résumé comme:
1. Lorsque l'expression régulière n'a pas de sous-expression et est définie comme une correspondance non globale, les résultats de l'exec et de la correspondance sont les mêmes, et le premier contenu de chaîne correspondant est renvoyé;
2. Lorsque l'expression régulière n'a pas de sous-expression et est définie comme une correspondance globale, EXEC et Match Exécute, et il y a plusieurs contenus de correspondance, le match renvoie plusieurs tableaux élémentaires;
3. Lorsque l'expression régulière est représentée et est définie comme une correspondance à l'échelle non ultra, les résultats de l'exécution de l'exec et de la correspondance sont les mêmes que ci-dessus;
4. Lorsque l'expression régulière est représentée et définie comme une correspondance globale, les résultats de l'exec et de la correspondance sont différents. , comme au-dessus du 6e, 6e, 6e, 6e, 6e, 6e.
C'est-à-dire que l'exécutif est défini par la situation globale n'est pas lié, et le match est associé à la situation globale.