Frère, j'ai récemment appris JavaScript et j'ai vu que les points de connaissance étaient un peu désordonnés lorsque j'apprenais une expression régulière, alors j'ai écrit un blog pour le résumer.
définition
Il existe deux façons de définir Reg Exp en JavaScript:
1) Utiliser un nouvel exp: var exp1 = nouveau exp ("ABC");
2) Mettez le modèle directement entre deux //: var exp2 = / ABC /; //Note. . Il n'y a pas de doubles citations, si vous l'ajoutez, cela devient une chaîne
Caractères spéciaux
Visuellement, les caractères spéciaux sont les mêmes que ceux de Perl. . Utilisez-le simplement directement
/ D
/ w caractères alphanumériques ("caractères de mot")
/ S Whitespace Caractères (espace, tab, newline et similaire)
/ D caractères qui ne sont pas des chiffres
/ W caractères non alphanumériques
/ S les caractères non espaces
. Une période correspond à tous les personnages sauf Newlines
Il existe un moyen très simple de se souvenir:
d = chiffre donc c'est un nombre
w = mot donc ce sont des lettres
s = espace donc c'est un espace
Toutes les capitalisations sont inverses. .
supports []
Mettre le motif entre parenthèses signifie que tant que n'importe quel personnage est apparié, il est vrai. (C'est la même chose que Java ou Perl)
Par exemple
La copie de code est la suivante:
console.log (/ [01] /. test ("023424")); // vrai
console.log (/ [01] /. test ("13424")); // vrai
console.log (/ [01] /. test ("23424")); // FAUX
supports ()
Cela signifie que tout entre crochets doit être vrai
Par exemple
La copie de code est la suivante:
console.log (/ [01] /. test ("013424")); // vrai
console.log (/ [01] /. test ("13424")); // FAUX
console.log (/ [01] /. test ("230424")); // FAUX
console.log (/ [01] /. test ("230142401")); // vrai
Quantificateurs
C'est la même chose que Java. . Cette table est très bonne. . J'ai toujours aimé l'utiliser
| Cupide | Réticent | Possessif | Signification |
|---|---|---|---|
| X? | X ?? | X? + | X, une fois ou pas du tout |
| X * | X *? | X * + | X, zéro ou plus de fois |
| X + | X +? | X ++ | X, une ou plusieurs fois |
| X {n} | X {n}? | X {n} + | X, exactement n fois |
| X {n,} | X {n,}? | X {n,} + | X, au moins n fois |
| X {n, m} | X {n, m}? | X {n, m} + | X, au moins n mais pas plus m fois |
Fonctions d'objet d'expression
1) Le test est très simple. Mettez simplement la chaîne à tester dans le test (...), et cette fonction renvoie True / False, qui représente la correspondance / sans correspondance
2) Exec, cette fonction renvoie NULL si aucune chaîne de correspondance n'est trouvée. S'il est trouvé, un tableau sera retourné. Cela contient des chaînes de correspondances dans l'ordre.
3) String.replace (Expression1, String1) Cette fonction remplace la partie de correspondance dans l'expression par String1. Dans String1, vous pouvez utiliser le groupe entre parenthèses dans l'expression précédente
, pour en remplacer une partie. Par exemple, "co-ol" .replace (/ [/ w] +/- [/ w] + /, "2 à 1 $"); // "ol-co" peut être utilisé jusqu'à 9 $
4) String.replace (expression, fonction) Il s'agit d'une version améliorée et est très puissante. Vous pouvez définir la sortie que vous souhaitez via la fonction. L'utilisation spécifique n'est pas répertoriée ici, veuillez vous référer à
Cliquez pour ouvrir le lien
Générez dynamiquement l'expression de REG
Cette méthode peut être appliquée lorsque vous souhaitez utiliser quelque chose dans Reg Exp ne connaît que le temps d'exécution
Pour générer Reg Exp, il vous suffit d'utiliser la chaîne pour créer le regist ex-look, puis d'utiliser le constructeur d'EXP. (mentionné au début de l'article)
Par exemple:
La copie de code est la suivante:
var name = "cher"
"Oh, mon cher" .replace (Nouveau exp (nom), "Dieu"); // oh mon Dieu
Cependant, s'il y a des caractères spéciaux dans le nom, il peut être utilisé dans l'expression régulière et la méthode ci-dessus fera souvent une erreur.
Donc, dans ce cas, nous pouvons préfixer chaque caractère de la chaîne d'entrée avec une barre arrière telle que:
La copie de code est la suivante:
var name = df [] vxv;
var expname = name.replace ("/ [^ / w / s] / g", "// $ &");
"Mon nom est df [] vxv" .replace (nouvel exp (nom), "bob"); // je m'appelle Bob