This page has been robot translated, sorry for typos if any. Original content here.

Feuille de triche JavaScript Expression régulière

Sur le sujet:


Description générale

Les expressions régulières sont des modèles permettant de rechercher des combinaisons données de caractères dans des chaînes de texte (une recherche est appelée correspondance de modèle). Il existe deux manières d'affecter des expressions régulières aux variables, à savoir:
Utilisation d’un initialiseur d’objet: var re = / pattern / switch?.
Utilisation du constructeur RegExp: var re = new RegExp ("pattern" [, "switch"]?).
Ici, le motif est une expression régulière et switch sont des options de recherche facultatives.

Les initialiseurs d'objet, par exemple, var re = / ab + c / , doivent être utilisés lorsque la valeur de l'expression régulière reste inchangée pendant l'exécution du script. Ces expressions régulières sont compilées pendant le processus de chargement du script et sont donc exécutées plus rapidement.

Un appel de constructeur, par exemple var re = new RegExp ("ab + c") , doit être utilisé dans les cas où la valeur de la variable changera. Si vous avez l'intention d'utiliser l'expression régulière plusieurs fois, il est judicieux de la compiler à l'aide de la méthode de compilation pour rechercher plus efficacement des modèles.

Lors de la création d'une expression régulière, gardez à l'esprit que son insertion entre guillemets implique la nécessité d'utiliser des séquences d'échappement, comme dans toute autre constante de chaîne. Par exemple, les deux expressions suivantes sont équivalentes:

	 var re = / \ w + / g;
	 var re = new RegExp ("\\ w +", "g");  // Dans la chaîne "\" doit être remplacé par "\\"
	

Remarque: l' expression régulière ne peut pas être vide: deux caractères // dans une ligne indiquent le début du commentaire. Par conséquent, pour spécifier une expression régulière vide, utilisez l'expression / .?/.

Les expressions régulières sont utilisées par les méthodes exec et test de l'objet RegExp et par les méthodes de correspondance, de remplacement, de recherche et de division de l'objet String. S'il suffit de vérifier si la chaîne donnée contient une sous-chaîne correspondant au modèle, les méthodes de test ou de recherche sont utilisées. Si nous devons extraire la sous-chaîne (ou les sous-chaînes) correspondant au modèle, nous devrons utiliser les méthodes exec ou match. La méthode replace recherche une sous-chaîne donnée et la remplace par une autre chaîne. La méthode split vous permet de scinder une chaîne en plusieurs sous-chaînes en fonction d'une expression régulière ou d'une chaîne de texte normale. Pour plus d'informations sur l'utilisation d'expressions régulières, voir la description des méthodes correspondantes.

Syntaxe des expressions régulières

Une expression régulière peut être composée de caractères normaux; dans ce cas, il correspondra à la combinaison de caractères donnée dans la chaîne. Par exemple, l'expression / com / correspond aux sous-chaînes sélectionnées dans les lignes suivantes: "lump", "gourmet", "commandant de la flotte". Toutefois, la souplesse et la puissance des expressions régulières permettent d’utiliser des caractères spéciaux, répertoriés dans le tableau suivant.

Caractères spéciaux dans les expressions régulières:

\ - Pour les caractères généralement interprétés littéralement, cela signifie que le caractère suivant est spécial. Par exemple, / n / correspond à la lettre n et / \ n / au caractère de saut de ligne. Pour les caractères qui sont généralement traités comme spéciaux, signifie que le caractère doit être pris à la lettre. Par exemple, / ^ / signifie le début d'une ligne et / \ ^ / correspond uniquement au caractère ^. / \\ / correspond à la barre oblique inverse \.

^ - Correspond au début d'une ligne.

$ - Correspond à la fin d'une ligne.

* - Correspond à la répétition du caractère précédent zéro ou plusieurs fois.

+ - Correspond à la répétition du caractère précédent une ou plusieurs fois.

? - Correspond à la répétition du caractère précédent zéro ou une fois.

. - Correspond à n'importe quel caractère sauf newline.

(motif) - Correspond au motif de chaîne et mémorise la correspondance trouvée.

(?: pattern) - Correspond au modèle de chaîne, mais ne se souvient pas de la correspondance trouvée. Utilisé pour regrouper des parties de l'échantillon, par exemple, / ko (?: T | scale) / - il s'agit d'un court enregistrement de l'expression / cat | cat /.

(? = motif) - La correspondance avec "regarder devant" est effectuée lors de la mise en correspondance de la chaîne de motif sans rappeler la correspondance trouvée. Par exemple, / Windows (? = 95 | 98 | NT | 2000) / correspond à "Windows" dans la chaîne "Windows 98", mais ne correspond pas à la chaîne "Windows 3.1". Après la mise en correspondance, la recherche continue à partir de la position qui suit le match, sans regarder vers l'avenir.

(?! pattern) - La correspondance avec "regarder devant" se produit lorsque la chaîne de motif ne correspond pas sans rappeler la correspondance trouvée. Par exemple, / Windows (?! 95 | 98 | NT | 2000) / correspond à "Windows" dans la chaîne "Windows 3.1", mais ne correspond pas à la chaîne "Windows 98". Après la mise en correspondance, la recherche continue à partir de la position qui suit le match, sans regarder vers l'avenir.

x | y - correspond à x ou y.

{n} - n est un nombre non négatif. Correspond exactement à n occurrences du caractère précédent.

{n,} - n est un nombre non négatif. Correspond à n ou plus d'occurrences du caractère précédent. / x {1,} / est équivalent à / x + /. / x {0,} / est équivalent à / x * /.

{n, m} - n et m sont des nombres non négatifs. Correspond à au moins n et au plus m occurrences du caractère précédent. / x {0,1} / est équivalent à / x? /.

[xyz] - Correspond à tout caractère placé entre crochets.

[^ xyz] - Correspond à tous les caractères sauf ceux entre crochets.

[az] - Correspond à tout caractère de la plage spécifiée.

[^ az] - Correspond à tous les caractères sauf ceux de la plage spécifiée.

\ b - Correspond à la limite de mot, c’est-à-dire à la position entre le mot et l’espace ou la ligne.

\ B - Correspond à n'importe quelle position sauf la limite de mot.

\ cX - correspond au caractère Ctrl + X. Par exemple, / \ cI / est équivalent à / \ t /.

\ d - Correspond à un chiffre. Équivalent à [0-9].

\ D - Correspond à un caractère non numérique. Équivalent à [^ 0-9].

\ f - Correspond au caractère de conversion de format (FF).

\ n - Correspond au caractère de saut de ligne (LF).

\ r - Correspond au caractère de retour de chariot (CR).

\ s - Correspond à un espace. Équivalent à / [\ f \ n \ r \ t \ v] /.

\ S - Correspond à n'importe quel caractère non-blanc. Équivalent à / [^ \ f \ n \ r \ t \ v] /.

\ t - Correspond à un caractère de tabulation (HT).

\ v - Correspond au caractère de tabulation verticale (VT).

\ w - Correspond à une lettre latine, un chiffre ou un trait de soulignement. Équivalent à / [A-Za-z0-9_] /.

\ W - Correspond à n'importe quel caractère sauf la lettre latine, le chiffre ou le trait de soulignement. Équivalent à / [^ A-Za-z0-9_] /.

\ n n est un nombre positif. Correspond à la nième sous-chaîne mémorisée. Calculé en comptant les parenthèses à gauche. Si les parenthèses à gauche avant ce caractère sont inférieures à n, alors \ 0n est équivalent.

\ 0n n est un nombre octal non supérieur à 377. Correspond au caractère avec le code octal n. Par exemple, / \ 011 / est équivalent à / \ t /.

\ xn n est un nombre hexadécimal à deux chiffres. Correspond à un caractère avec un code hexadécimal n. Par exemple, / \ x31 / est équivalent à / 1 /.

\ un n est un nombre hexadécimal à quatre chiffres. Correspond à un caractère Unicode avec le code hexadécimal n. Par exemple, / \ u00A9 / est équivalent à / c /.

Les expressions régulières sont évaluées de la même manière que d’autres expressions JavaScript, c’est-à-dire en tenant compte de la priorité des opérations: les opérations ayant une priorité plus élevée sont exécutées en premier. Si les opérations ont la même priorité, elles sont exécutées de gauche à droite. Le tableau suivant répertorie les opérations des expressions régulières dans l’ordre décroissant de leurs priorités. les opérations situées sur la même ligne de la table ont la même priorité.

Opérations:
  \
 () (? :) (? =) (?!) []
	 * +?  .  {n} {n,} {n, m}
	 ^ $ \ metacharacter
	 |
	

Options de recherche

Lors de la création d'une expression régulière, nous pouvons spécifier des options de recherche supplémentaires:
i (ignorer le cas). Ne faites pas de distinction entre les lettres minuscules et majuscules.
g (recherche globale). Recherche globale pour toutes les occurrences du motif.
m (multiligne). Recherche multiligne.
N'importe quelle combinaison de ces trois options, par exemple ig ou gim.

Exemple

	 var s = "apprentissage du JavaScript";
	 var re = / JAVA /;
	 var résultat = re.test (s)?  "" ":" "pas";
	 document.write ("String" "+ s + result +" correspond au motif "+ re);
	

Étant donné que les expressions régulières distinguent les lettres minuscules et majuscules, cet exemple affiche le texte dans la fenêtre du navigateur:

L'apprentissage de JavaScript n'est pas conforme à / JAVA /

Si nous remplaçons maintenant la deuxième ligne de l'exemple par var re = / JAVA / i ;, le texte sera affiché:

L'apprentissage de JavaScript est identique à / JAVA / i


Considérons maintenant l'option de recherche globale. Il est généralement utilisé par la méthode replace pour rechercher un modèle et remplacer la sous-chaîne trouvée par une nouvelle. Le fait est que par défaut cette méthode ne remplace que la première sous-chaîne trouvée et renvoie le résultat. Considérez le scénario suivant:

	 var s = "Nous écrivons des scripts en JavaScript," +
	 "mais JavaScript n'est pas le seul langage de script.";
	 var re = / JavaScript /;
	 document.write (s.replace (re, "VBScript"));
	

Il affiche un texte dans la fenêtre du navigateur qui ne correspond clairement pas au résultat souhaité: nous écrivons des scripts en VBScript, mais JavaScript n'est pas le seul langage de script. Pour que toutes les occurrences de la chaîne "JavaScript" soient remplacées par "VBScript", nous devons modifier la valeur de l'expression régulière en var re = / JavaScript / g; . La chaîne résultante ressemblera alors à:

Nous écrivons des scripts dans VBScript, mais VBScript n'est pas le seul langage de script.

Enfin, l'option de recherche multiligne permet la correspondance avec un modèle d'expression de chaîne constitué de plusieurs lignes de texte reliées par des caractères de fin de ligne. Par défaut, la correspondance de modèle est terminée si un caractère de saut de ligne est trouvé. Cette option surmonte la limitation spécifiée et fournit une recherche pour un échantillon dans la chaîne source entière. Cela affecte également l'interprétation de certains caractères spéciaux dans les expressions régulières, à savoir: En règle générale, le caractère ^ n'est associé qu'au premier élément de la chaîne. Si l'option de recherche multiligne est activée, elle est également mappée sur un élément de ligne précédé d'un caractère de saut de ligne. Généralement, le caractère $ ne correspond qu'au dernier élément de la chaîne. Si l'option de recherche multiligne est activée, elle est également mappée sur un élément de campagne présentant un caractère de saut de ligne.

Stockage des sous-chaînes trouvées

Si une partie de l'expression régulière est entre parenthèses, la sous-chaîne correspondante sera mémorisée pour une utilisation ultérieure. Pour accéder aux sous-chaînes stockées, utilisez les propriétés $ 1,:, $ 9 de l'objet RegExp ou les éléments de tableau renvoyés par les méthodes exec et match. Dans ce dernier cas, le nombre de sous-chaînes trouvées et stockées n'est pas limité.

Le script suivant utilise la méthode replace pour échanger des mots dans une chaîne. Pour remplacer le texte trouvé, les propriétés $ 1 et $ 2 sont utilisées.

	 var re = / (\ w +) \ s (\ w +) / i;
	 var str = "Mikhail Bulgakov";
	 document.write (str.replace (re, "$ 2, $ 1"))
	

Ce script affiche le texte dans la fenêtre du navigateur:

Boulgakov, Mikhail

parce que \ w = [A-Za-z0-9_], les lettres russes ne fonctionneront pas. Si nous voulons utiliser des lettres russes, nous devrons alors modifier légèrement le code:

	 var re = / ([ay] +) \ s ([ay] +) / i; 
	 var str = "Mikhail Bulgakov"; 
	 document.write (str.replace (re, "$ 2, $ 1"));  // Boulgakov, Mikhail
	

Ce script affiche le texte dans la fenêtre du navigateur:

Boulgakov, Mikhail

Introduction

Concepts de base

Les expressions régulières sont un outil puissant pour traiter les données entrantes. Une tâche nécessitant un remplacement ou une recherche de texte peut être parfaitement résolue à l’aide de cette «langue dans la langue». Bien que l'effet des expressions régulières puisse être optimisé à l'aide des langues du serveur, vous ne devez pas sous-estimer les fonctionnalités de cette application côté client.

Expression régulière - moyen de traitement de chaînes ou d'une séquence de caractères définissant un modèle de texte.

Modificateur - conçu pour "instruire" l'expression régulière.
Les métacaractères sont des caractères spéciaux servant de commandes du langage des expressions régulières.

L'expression régulière est définie comme une variable régulière, seule une barre oblique est utilisée à la place de guillemets, par exemple:

  var reg = / expression_reg / / 

Par modèles les plus simples, nous entendons les modèles qui ne nécessitent aucun caractère spécial.

Supposons que notre tâche est de remplacer toutes les lettres "p" (petites et majuscules) par la lettre majuscule latine "R" dans l'expression expressions régulières.

Nous créons le template var reg = / p / et en utilisant la méthode replace, nous réalisons notre plan

	 <script language = "JavaScript">
		 var str = "Expressions régulières"
		 var reg = / p /
		 var result = str.replace (reg, "R")
		 document.write (résultat)
	 </ script>
	

En conséquence, nous obtenons la chaîne 'Expressions régulières', le remplacement n'a eu lieu qu'à la première occurrence de la lettre "p", sensible à la casse. Mais ce résultat ne correspond pas aux conditions de notre tâche ... Ici, nous avons besoin des modificateurs "g" et "i", qui peuvent être utilisés séparément ou ensemble.
Ces modificateurs sont placés à la fin du modèle d’expression régulière, après la barre oblique, et ont les valeurs suivantes: modificateur "g" - définit la recherche dans la chaîne comme "globale", c.-à-d. dans notre cas, le remplacement aura lieu pour toutes les occurrences de la lettre "p". Maintenant, le modèle ressemble à ceci: var reg = / p / g , en le substituant dans notre code

	 <script language = "JavaScript">
		 var str = "Expressions régulières"
		 var reg = / p / g
		 var result = str.replace (reg, "R")
		 document.write (résultat)
	 </ script>
	
nous obtenons la chaîne 'Expressions régulières'.

Modificateur "i" - définit la recherche dans une chaîne ne respectant pas la casse en ajoutant ce modificateur à notre modèle var reg = / р / gi. Après l'exécution du script, nous obtenons le résultat souhaité de notre tâche - "Expressions régulières".

Caractères spéciaux (métacaractères)

Les métacaractères spécifient le type de caractère de la chaîne de recherche, la manière dont la chaîne de recherche est entourée dans le texte et le nombre de caractères d'un seul type dans le texte affiché. Par conséquent, les métacaractères peuvent être divisés en trois groupes:

Rechercher des métacaractères.
Métacaractères quantitatifs.
Métacaractères du positionnement.
Rechercher des métacaractères

\ b word limit, définit la condition dans laquelle le motif doit être exécuté au début ou à la fin des mots.

\ B n'est pas une limite de mot, définit la condition dans laquelle le motif n'est pas exécuté au début ou à la fin du mot.

\ d chiffre de 0 à 9.

\ D n'est pas un nombre.

Seul caractère vide, correspond au caractère espace.

\ S caractère unique non vide, tout caractère unique à l'exception de l'espace.

\ w lettre, chiffre ou trait de soulignement.

\ W n'est pas une lettre, un chiffre ou un trait de soulignement.

. n'importe quel caractère, n'importe quels signes, lettres, chiffres, etc.

[] un ensemble de caractères, définit la condition dans laquelle un motif doit être exécuté pour toute correspondance entre des caractères placés entre crochets.

[^], un ensemble de caractères non saisis, définit la condition dans laquelle le motif ne doit pas être exécuté pour toute correspondance de caractères entre crochets.

Métacaractères quantitatifs

* zéro fois et plus.

? Zéro ou une fois

+ Une ou plusieurs fois.

{n} exactement n fois.

{n,} n fois ou plus.

{n, m} au moins n fois, mais pas plus de m fois.

Positionnement des métacaractères

^ au début d'une ligne.

$ au bout de la ligne.

Quelques méthodes pour travailler avec des modèles

replace - nous avons déjà utilisé cette méthode au tout début de l'article, elle est conçue pour rechercher un motif et remplacer la sous-chaîne trouvée par une nouvelle sous-chaîne.

test - cette méthode vérifie s'il existe des correspondances dans la chaîne relative au modèle et renvoie false si la correspondance du modèle échoue, sinon true.

Exemple

	 <script language = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var result = reg.test (str)
		 document.write (résultat)
	 </ script>
	

produira faux comme résultat, puisque la chaîne "JavaScript" n'est pas égale à la chaîne "PHP".

En outre, la méthode de test peut renvoyer à la place de true ou de false toute autre ligne spécifiée par le programmeur.
par exemple:

	 <script language = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var result = reg.test (str)?  "Ligne correspondante": "La ligne ne correspond pas"
		 document.write (résultat)
	 </ script>
	
dans ce cas, le résultat sera la chaîne "La chaîne ne correspond pas".

exec - cette méthode associe la chaîne au modèle spécifié par le modèle. Si la correspondance de modèle échoue, la valeur null est renvoyée. Sinon, le résultat est un tableau de sous-chaînes correspondant au modèle donné. / * Le premier élément du tableau sera égal à la chaîne d'origine qui correspond au modèle donné * /
par exemple:

	 <script language = "JavaScript">
		 var reg = / (\ d +). (\ d +). (\ d +) /
		 var arr = reg.exec ("Je suis né le 15/09/1980")
		 document.write ("Date de naissance:", arr [0], "<br>")
		 document.write ("Birthday:", arr [1], "<br>")
		 document.write ("Mois de naissance:", arr [2], "<br>")
		 document.write ("Année de naissance:", arr [3], "<br>")
	 </ script>
	

en conséquence, nous obtenons quatre lignes:
Date de naissance: 15/09/1980
Anniversaire: 15
Mois de naissance: 09
Année de naissance: 1980

Conclusion

L'article ne reflète pas toutes les possibilités et les charmes des expressions régulières; pour approfondir ce problème, je vous conseille d'étudier l'objet RegExp. Je souhaite également attirer l'attention sur le fait que la syntaxe des expressions régulières n'est pas différente en JavaScript et en PHP. Par exemple, pour vérifier l'exactitude de l'entrée de courrier électronique, une expression régulière qui, pour JavaScript, ressemble à PHP
/►0-9a-z_†+@►0-9a-z_^.†+.►az{{2,3►/i.

Les expressions régulières sont une sorte de modèle de recherche de certaines combinaisons de caractères dans des chaînes, tandis que les expressions régulières sont entourées de barres obliques. Les littéraux d'expression régulière sont répertoriés ci-dessous.

Littéraux

Littéral Description
\ Il fait partie des caractères spéciaux et indique également à l'interprète que le caractère suivant n'est pas un littéral. Il est utilisé avant les codes de caractère octal pour extraire de la mémoire les sous-expressions stockées et pour utiliser un littéral dans une expression régulière.
^ Ligne de départ
$ Fin de ligne
* Signifie que le caractère précédent doit apparaître plusieurs fois dans la chaîne ou ne pas se rencontrer
+ Signifie que le caractère précédent doit apparaître dans la chaîne une ou plusieurs fois
? Signifie que le caractère précédent doit apparaître une fois dans la chaîne ou non
{numéro} Signifie que le caractère précédent doit apparaître dans la chaîne le nombre de fois spécifié
{numéro} Signifie que le caractère précédent doit figurer dans la chaîne le nombre de fois spécifié ou plus
{number1, number2} Signifie que le caractère précédent doit apparaître dans une ligne du premier au deuxième nombre de fois
. Signifie n'importe quel caractère sauf \ n (nouvelle ligne)
(sous-expression) Recherche une sous-expression et stocke en mémoire le groupe de caractères trouvé
\ numéro de groupe Récupère le groupe de caractères spécifié stocké à l'aide du littéral précédent
symbole1 | symbole 2 Recherche l'un des deux personnages
[jeu de caractères] Recherche un personnage d'un ensemble donné
[^ jeu de caractères] Recherche d'un caractère non inclus dans l'ensemble
\ b Indique la limite du mot, la position entre le mot et l'espace
\ B Indique la bordure de l'espace, la position entre l'espace et le mot
\ c Correspond au caractère de contrôle de la forme "Ctrl" + "caractère"
\ d N'importe quel nombre
\ D Tout caractère non numérique
\ f Symbole de traduction de page
\ n Caractère Newline
\ r Symbole de retour de chariot
\ s Espace, tabulation, nouvelle ligne ou saut de ligne
\ t Onglet
\ v Onglet vertical
\ w Lettre, chiffre ou souligné
\ xCode Symbole avec code hexadécimal
\ o code Symbole avec le code octal spécifié
\ numéro de groupe Récupère un groupe de caractères précédemment enregistré avec le nombre spécifié de la mémoire

Exemple

	 /(\w+)@({\w\._}+)/
	

Cette expression recherche toute adresse électronique en la divisant en deux parties: le nom de la boîte aux lettres et le nom du serveur, puis les enregistre en mémoire sous forme de groupes de caractères numérotés 1 et 2.

Classe RegExp

Cette classe est responsable du traitement des chaînes à l'aide d'expressions régulières. Son constructeur a la forme suivante:

  RegExp ( Expression régulière , Drapeaux )
	

Il n'accepte qu'un seul paramètre obligatoire - il s'agit de "l'expression régulière", qui est placée entre guillemets. Le paramètre "flags" représente des conditions de recherche supplémentaires et peut prendre des valeurs:

  • g - la recherche globale est définie, si cet indicateur est défini, l'expression renverra tous les mots correspondants.
  • je - ignore le cas
  • m - recherche multiligne

Il existe trois méthodes de la classe String utilisées avec les varazas classiques:

  • match - Effectue une recherche dans une chaîne en utilisant l'expression régulière passée en tant que paramètre et renvoie un tableau avec les résultats de la recherche. Si rien n'est trouvé, null est renvoyé.
  • replase - Effectue une recherche et remplace dans une chaîne en utilisant des expressions régulières et renvoie la chaîne reçue.
  • search - effectue une recherche dans une chaîne en utilisant l'expression régulière passée en tant que paramètre et renvoie la position de la première sous-chaîne correspondant à l'expression régulière.

Les propriétés

La propriété Description
lastIndex Spécifie la position de départ de la recherche dans une chaîne
sourse Renvoie une chaîne d'expression régulière (lecture seule)
global Détecte la présence de l'indicateur g et renvoie true ou false, respectivement
ignorer cas Détecte la présence du drapeau i et renvoie true ou false, respectivement
multilane Détecte la présence de l'indicateur m et renvoie true ou false, respectivement

Les méthodes

Méthode Description
compiler ( Dépôt régulier de g, i, m ) Compile une expression régulière dans un format interne pour accélérer le travail, peut être utilisé pour modifier une expression régulière
exec ( chaîne ) Similaire à la méthode de correspondance de la classe String, mais la chaîne dans laquelle vous souhaitez rechercher est transmise en tant que paramètre.
test ( chaîne ) Similaire à la méthode de recherche de la classe String, renvoie true ou false en fonction des résultats de la recherche.

Exemple

	 var résultat, re, str;
	 str = "http://www.netscape.com";
	 re = new RegExp ("w {3}", "i");
	 résultat = str.match (re)
	

Ici, cette section du script recherche le texte "www" dans la chaîne affectée à la variable "str" ​​sans distinction de casse, et la méthode de correspondance renvoie un tableau de résultats contenant les résultats de la recherche.

Objet global RegExp

Cet objet global est utilisé pour accéder aux résultats de la recherche à l'aide d'expressions régulières. Cet objet est créé par l'interprète lui-même et est toujours disponible. Format d'accès à ses propriétés:

  RegExp.  la propriété
 

Les propriétés

La propriété Description
$ numéro de sous-expression Retourne l'une des dernières sous-expressions trouvées (dépend du nombre). Le nombre peut être compris entre 1 et 9, car l'interprète stocke dans cette propriété seulement neuf des dernières sous-expressions trouvées. Pour accéder au reste, utilisez le tableau renvoyé par les méthodes match ou exec.
index Retourne la position dans la chaîne de la sous-chaîne trouvée
entrée | & _ Retourne la chaîne où la recherche est effectuée.
lastIndex Spécifie la position de départ de la recherche dans une chaîne
lastMatch | $ & Retourne la dernière sous-chaîne trouvée
lastParent | $ + Retourne le dernier groupe de caractères trouvé si des sous-expressions ont été utilisées dans l'expression régulière
leftContext | $ ' Renvoie une chaîne composée de tous les caractères du début de la chaîne jusqu'à la dernière sous-chaîne trouvée, à l'exclusion de celle-ci.
rightContext | $ ' Renvoie une chaîne composée de tous les caractères de la dernière sous-chaîne trouvée, sans l'inclure, à la fin de la chaîne d'origine.

Exemples d'expressions régulières

Analyse d'URL

	 var re, str, protocole, adresse, nom de fichier, résultat;
	 str = "http // www.somedomain.ru / index2.html";
	 re = new RegExp ("(((\ w +): \ / \ /)? ([^ /] +) (. *)?", "i");
	 résultat = re.exec (str);
	 si (résultat! = null)
	 {
		 protocole = RegExp. $ 2;
		 adresse = RegExp. 3 $;
		 filename = RegExp. $ 4;
	 }
	

Ce script divise l'adresse Internet en plusieurs composants. Dans l'expression régulière, plusieurs sous-expressions ont été utilisées, qui sont stockées par l'interpréteur de la manière suivante: tout d'abord, l'expression externe est enregistrée, puis l'expression interne. Après l'expression régulière, il y a une ligne (result = re.exec (str);), qui commence le fractionnement de l'adresse, puis la validité de l'adresse est vérifiée et, en cas de résultat positif, les parties correspondantes de l'adresse sont attribuées aux variables.

La fonction pour supprimer des espaces au début et à la fin d'une ligne

	 fonction trim (str)
	 {
	  renvoie str.toString (). replace (/ ^ [] + /, '') .replace (/ [] + $ /, '');
	 }
	
Une autre option:
	 fonction trim (str) {
	  return str.replace (/ ^ \ s + | \ s + $ / g, '');
	  }
	

Rechercher de la musique sur la page

 var mmReg = / (?: http: \ / \ / [\ w.] + \ /)? (?!: \ / \ /) [^ <^> ^ "^ '^ \ s] + \. (? : aiff | au | avi | flv | mid | mov | mp3 | ogg | ra | rm | spl | swf | wav | wma | wmv) (?! \ w) / ig; this.tmp = this.allText.match ( mmReg); if (this.tmp && this.search_common_embeds) if ((this.tmp.length> 1)) if ((this.tmp.length> 2) || (this.tmp [0]! = this.tmp [1])) ...