1. Méthode constructeur
var reg = new RegExp ( 'd' , 'gi' ) ;
2. Méthode littérale
var reg = / d / gi ;
Il existe trois types de modificateurs : i, g, m
peuvent apparaître en même temps, dans aucun ordre (c'est-à-dire que gi
est le même que ig
), veuillez vous référer aux instructions ci-dessous
modificateur | illustrer |
---|---|
je | Ignorer la correspondance de casse |
g | Correspondance globale, c'est-à-dire faire correspondre une correspondance puis continuer à correspondre jusqu'à la fin |
m | Correspondance multiligne, c'est-à-dire que la correspondance ne s'arrête pas après avoir rencontré une nouvelle ligne jusqu'à la fin |
symbole | effet |
---|---|
En tant que changement de sens, c'est-à-dire que les caractères après "" ne sont généralement pas interprétés selon leur sens original. Par exemple, /b/ correspond au caractère "b". Lorsque /b/ est ajouté devant b, le caractère "b" est ajouté. le sens du changement est de correspondre à une limite de mot. Ou la restauration des caractères de fonction d'expression régulière, tels que " " correspond au métacaractère qui le précède 0 fois ou plus, /a / correspondra à a, aa, aaa Après avoir ajouté "", /a*/ ne correspondra qu'à "a *". | |
^ | Correspond à une entrée ou au début d'une ligne, /^a/ correspond à "an A", mais ne correspond pas à "An a" |
$ | Correspond à une entrée ou à la fin d'une ligne, /a$/ correspond à "An a", mais ne correspond pas à "an A" |
. | Correspond à n'importe quel caractère, à l'exception des nouvelles lignes et des terminateurs |
* | Correspond au métacaractère précédent 0 fois ou plus, /ba*/ correspondra à b,ba,baa,baaa |
+ | Correspond au métacaractère précédent 1 ou plusieurs fois, /ba+/ correspondra à ba, baa, baaa |
? | Correspond au métacaractère précédent 0 ou 1 fois, /ba?/ correspondra à b,ba |
(x) | Faites correspondre x et enregistrez x dans des variables nommées $1...$9 |
x | oui |
{n} | Correspond exactement n fois |
{n,} | Match n ou plusieurs fois |
{n,m} | Correspond à nm fois |
[xyz] | Jeu de caractères (jeu de caractères), correspond à n'importe quel caractère (ou métacaractère) de ce jeu |
[^xyz] | Ne correspond à aucun caractère de cet ensemble |
[az] | N'importe quelle lettre [] peut représenter n'importe qui |
[^az] | ^ sans lettres [] représente sauf |
[b] | Correspond à un caractère de retour arrière |
b | Faire correspondre une limite de mot |
B | Faire correspondre un mot sans limite |
cX | Ici, X est un caractère de contrôle, /cM/ correspond à Ctrl-M |
d | Correspond à un caractère alphanumérique, /d/ = /[0-9]/ |
D | Correspond à un caractère non alphanumérique, /D/ = /[^0-9]/ |
n | Correspond à un caractère de nouvelle ligne |
r | Correspond à un retour chariot |
f | Flux de formulaire de correspondance |
s | Correspond à un caractère d'espacement, notamment n, r, f, t, v, etc. |
S | Correspond à un caractère autre qu'un espace, égal à /[^nfrtv]/ |
t | faire correspondre un caractère de tabulation |
v | Correspond à un caractère de double tabulation |
w | Correspond à un caractère pouvant former un mot (alphanumérique, c'est ma traduction gratuite, chiffres compris), y compris les traits de soulignement, tels que [w] correspondant au 5 dans "$5,98", qui est égal à [a-zA-Z0-9 ] |
W | Correspond à un caractère qui ne peut pas former un mot, tel que [W] correspondant au $ dans "$5.98", ce qui est égal à [^a-zA-Z0-9] |
Correspond aux caractères NUL |
Les assertions de largeur nulle sont utilisées pour rechercher des éléments avant ou après un certain contenu (mais n'incluant pas ce contenu), c'est-à-dire qu'elles sont utilisées comme b,^,$
pour spécifier une position qui doit remplir certaines conditions (c'est-à-dire des assertions), donc on les appelle aussi assertions de largeur nulle
Affirmation antécédente | Également appelée assertion d'anticipation positive de largeur nulle (?=表达式) ce qui signifie faire correspondre la position avant l'expression | Par exemple, [az]*(?=ing) peut correspondre à cuisinier et chanter en chantant en cuisine. |
Remarque : Les étapes d'exécution de l'assertion d'anticipation sont les suivantes : recherchez d'abord le premier ing à partir de l'extrémité droite de la chaîne à mettre en correspondance (c'est-à-dire l'expression dans l'assertion d'anticipation), puis faites correspondre l'expression précédente si elle ne peut pas l'être. correspond, continuez Recherchez le deuxième ing, puis faites correspondre la chaîne avant le deuxième ing. Si elle correspond, alors faites correspondre.
Affirmation postérieure | Également appelée assertion post-lookback de largeur nulle (?<=表达式) ce qui signifie faire correspondre la position après l'expression. | Par exemple (?<=abc).* peut correspondre à defg dans abcdefg |
Remarque : L'assertion tardive est exactement l'opposé de l'assertion anticipée. Ses étapes d'exécution sont les suivantes : recherchez d'abord le premier abc à partir de l'extrémité la plus à gauche de la chaîne à mettre en correspondance (c'est-à-dire l'expression dans l'assertion anticipée). ), puis faites correspondre l'expression suivante. Si elle ne peut pas être mise en correspondance, continuez à rechercher le deuxième abc, puis faites correspondre la chaîne après le deuxième abc. Si elle peut correspondre, elle le sera. Par exemple, (?<=abc).*
peut correspondre à defgabc dans abcdefgabc au lieu de abcdefg
Assertion négative de largeur nulle | (?!表达式) correspond également à une position de largeur nulle, mais « l'assertion » à cette position prend la valeur inverse de l'expression. Par exemple, (?!表达式) représente la position avant l'expression. , correspond à cette position. ; Si l'expression est vraie, elle ne correspond pas : De même, il existe deux types d'assertions négatives de largeur nulle : "first" et "last" L'assertion négative de largeur nulle est (?<!表达式) |
(?<!表达式)
(?!表达式)
Utilisez des parenthèses pour envelopper la chaîne correspondante, puis utilisez l'expression $1 dans la valeur de remplacement pour obtenir la valeur actuellement correspondante. Par exemple, s'il y a plusieurs parenthèses, vous pouvez utiliser $1, $2, $3 pour obtenir. la valeur correspondante. Après avoir tout remplacé, ce sont les données que nous voulons enfin.
Par exemple, ce qui suit est une expression régulière dans la zone de recherche, qui peut correspondre à tous les attributs class
dans la structure HTML
className = "([^0-9]+)"
On peut alors remplacer
className = { { $1 } }
Ensuite, ce sera
className = "xxx" //转化为
className = { { xxx } }
1. Méthodes liées à l'objet RegExp
nom de la méthode | Scénarios d'utilisation | valeur de retour | Exemple |
---|---|---|---|
test | Déterminez si cela correspond | vrai ou faux | /d/.test('eno yao 2019') |
test | Renvoie des résultats correspondants, similaires à match | tableau ou nul | /d/.exec('eno yao 2019') |
2. Méthodes liées aux objets String
nom de la méthode | Scénarios d'utilisation | valeur de retour | Exemple |
---|---|---|---|
correspondre | Renvoie le résultat correspondant. Dans des conditions non globales, il est cohérent avec le résultat renvoyé par exec et contient des informations pointant vers la chaîne correspondante. Dans des conditions globales, tous les résultats correspondants sont renvoyés en même temps. | tableau ou nul | 'eno yao 2019'.match(/d/) |
remplacer | Remplacez une chaîne par une autre chaîne ou remplacez une chaîne correspondante normale par une autre sous-chaîne | tableau ou nul | 'eno yao 2019'.replace(/d/, '2019') |
recherche | Recherchez la position de la première sous-chaîne correspondante et renvoyez la valeur d'index, sinon renvoyez -1 | indice | 'eno yao 2019'.search(/d/, '2019') |
diviser | Divisez le tableau en fonction de la chaîne ou de la chaîne convenue, acceptez une chaîne ou une chaîne régulière | indice | 'eno yao 2019'.search(/d/, '2019') |