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

Aide-mémoire Javascript Expressions régulières

Par sujet:


Description générale

Les expressions régulières sont des modèles permettant de rechercher des combinaisons spécifiques de caractères dans des chaînes de texte (cette recherche s'appelle correspondance de modèle). Il existe deux manières d'affecter des expressions régulières aux variables, à savoir:
Utilisez l’initialiseur d’objet: var re = / pattern / switch?.
Utilisation du constructeur RegExp: var re = new RegExp ("pattern" [, "switch"]?).
Ici, pattern est une expression régulière et switch est une option de recherche facultative.

Les initialiseurs d'objet, par exemple, var re = / ab + c / , doivent être utilisés dans les cas où 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 d'une variable change. Si vous comptez utiliser une expression régulière plusieurs fois, il est judicieux de la compiler avec la méthode de compilation pour rechercher plus efficacement des modèles.

Lors de la création d'une expression régulière, vous devez tenir compte du fait 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 ligne "\" devrait être remplacé par "\\"
	

Remarque: une expression régulière ne peut pas être vide: deux // caractères dans une ligne spécifient le début d'un 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, remplacement, recherche et division de l'objet String. Si nous devons simplement 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 une sous-chaîne (ou des sous-chaînes) correspondant au modèle, nous devrons utiliser les méthodes exec ou match. La méthode replace vous permet de rechercher une sous-chaîne donnée et de la remplacer 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 des expressions régulières, voir la description des méthodes correspondantes.

Syntaxe d'expression régulière

Une expression régulière peut être composée de caractères ordinaires; dans ce cas, il correspondra à la combinaison de caractères spécifiée dans la chaîne. Par exemple, l'expression / com / correspond aux chaînes sélectionnées dans les lignes suivantes: "lump", "gourmet", "commandant en chef 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 / à un caractère de nouvelle ligne. Pour les caractères qui sont généralement traités comme spéciaux, cela signifie que le caractère doit être pris à la lettre. Par exemple, / ^ / signifie le début d’une ligne et / \ ^ / correspond simplement au symbole ^. / \\ / correspond à la barre oblique inversée \.

^ - Correspond au début de la ligne.

$ - correspond à la fin de la ligne.

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

+ - 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 le caractère de nouvelle ligne.

(motif) - Correspond à la ligne du motif 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 d'un échantillon, par exemple, / ko (?: T | scale) / est un bref enregistrement de l'expression / cat | cat /.

(? = pattern) - La conformité avec "peering forward" survient lorsque la ligne de modèle correspond, sans mémoriser 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 suivant la correspondance trouvée, sans regarder vers l’avant.

(?! pattern) - La conformité avec "regarder devant" se produit lorsque la chaîne de modèle ne correspond pas sans mémoriser 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 suivant la correspondance trouvée, sans regarder vers l’avant.

x | y - correspond à x ou y.

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

{n,} - n est un nombre non négatif. Associez n ou plusieurs 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 un espace ou un saut de ligne.

\ B - Correspond à toute position autre que la limite de mot.

\ cX - Correspond au symbole Ctrl + X. Par exemple, / \ cI / est équivalent à / \ t /.

\ d - correspond au nombre. Équivalent à [0-9].

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

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

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

\ r - Correspond au symbole de retour 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 au caractère de tabulation (HT).

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

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

\ W - Correspond à tout caractère sauf la lettre latine, les chiffres ou les traits 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 la parenthèse gauche précédant ce caractère est inférieure à n, alors l'équivalent de \ 0n.

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

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

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

Les expressions régulières sont calculées de la même manière que les 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 d’expression régulière par ordre décroissant de priorité. les opérations situées dans une 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 de l'échantillon.
m (multiligne). Recherche multiligne.
Toute combinaison de ces trois options, telle que ig ou gim.

Exemple

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

Comme les expressions régulières distinguent les lettres minuscules des minuscules, cet exemple affiche le texte dans la fenêtre du navigateur:

La ligne "Apprendre le langage JavaScript" ne correspond pas au modèle / JAVA /

Si nous remplaçons maintenant la deuxième ligne de l'exemple par var re = / JAVA / i, le texte s'affichera à l'écran:

La ligne "Apprendre le langage JavaScript" correspond au modèle / JAVA / i


Considérons maintenant l'option de recherche globale. Il est généralement utilisé par la méthode replace pour rechercher un échantillon et remplacer la sous-chaîne trouvée par une nouvelle. Le fait est que, par défaut, cette méthode remplace uniquement la première sous-chaîne trouvée et renvoie le résultat obtenu. 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 dans 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 sera 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 un saut 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 dépasse la limite spécifiée et permet de rechercher l'échantillon sur toute la ligne source. Cela affecte également l'interprétation de certains caractères spéciaux dans les expressions régulières, comme suit: Généralement, le caractère ^ correspond uniquement au premier élément d'une chaîne. Si l'option de recherche multiligne est activée, elle est également mappée sur n'importe quel élément de la ligne précédé d'un caractère de saut de ligne. Normalement, le caractère $ ne correspond qu'au dernier élément d'une chaîne. Si l'option de recherche multiligne est activée, elle est également mappée sur un élément de la ligne qui est un caractère de saut de ligne.

Mémorisation 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, les propriétés $ 1,:, $ 9 de l'objet RegExp ou les éléments du tableau renvoyés par les méthodes exec et match sont utilisés. 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 réorganiser les 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 affichera le texte dans une 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 un peu le code:

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

Ce script affichera le texte dans une fenêtre du navigateur:

Bulgakov, Michael

Introduction

Concepts de base

Les expressions régulières sont un outil puissant pour le traitement des données entrantes. Une tâche qui nécessite le remplacement ou la recherche de texte peut être résolue de manière esthétique à l’aide de cette «langue dans la langue». Et bien que les expressions régulières puissent avoir un effet maximal lorsque vous utilisez des langues de serveur, vous ne devez cependant pas sous-estimer les possibilités de cette application côté client.

Expression régulière (expression régulière) - moyen de traitement de chaînes ou d'une séquence de caractères définissant le motif du texte.

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

Une expression régulière est définie en tant que variable régulière, seule une barre oblique est utilisée à la place de guillemets, par exemple:

  var reg = / expression_reg / / 

Par les modèles les plus simples, nous comprendrons de tels 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.

Créer un modèle var reg = / p / et en utilisant la méthode de remplacement, nous réalisons nos plans

	 <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’est intervenu qu’à la première occurrence de la lettre "p", en tenant compte du registre. Mais dans les conditions de notre problème, ce résultat ne convient pas ... 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 une 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>
	
récupérez la chaîne 'Regulatory expressions'.

Le modificateur "i" - définit la recherche dans la chaîne sans tenir compte de la casse, en ajoutant ce modificateur à notre modèle var reg = / p / gi, après avoir exécuté le 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ères de la chaîne de recherche, la manière dont elle entoure la chaîne de recherche dans le texte, ainsi que le nombre de caractères d'un type particulier dans le texte affiché. Par conséquent, les méta-caractères peuvent être divisés en trois groupes:

Métacaractères correspondants.
Métacaractères quantitatifs.
Positionner des métacaractères
Métacaractères correspondants

\ 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, il définit une condition dans laquelle le motif n'est pas exécuté au début ou à la fin d'un mot.

\ d chiffre de 0 à 9.

\ D n'est pas un chiffre.

\ s est un caractère vide unique, correspondant 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.

[] jeu de caractères, définit la condition dans laquelle le motif doit être exécuté pour toute coïncidence de caractères entre crochets.

[^], un ensemble de caractères non entrants, définit la condition dans laquelle le modèle ne doit pas être exécuté pour toute coïncidence 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.

Positionner des métacaractères

^ au début de la 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; il est destiné à rechercher un exemple 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 la valeur false si la correspondance du modèle a échoué, sinon la valeur est true.

Exemple

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

va imprimer faux à la suite La chaîne "javascript" n'est pas égale à la chaîne "php".

En outre, la méthode de test peut renvoyer, au lieu de true ou de false, toute autre chaîne spécifiée par le programmeur.
par exemple:

	 <script language = "JavaScript">
		 var str = "javascript"
		 var reg = / php /
		 var result = reg.test (str)?  "La chaîne a coïncidé": "La chaîne ne correspond pas"
		 document.write (résultat)
	 </ script>
	
dans ce cas, le résultat est la chaîne 'La chaîne ne correspond pas'.

exec - cette méthode effectue une correspondance de chaîne avec le 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 spécifié. / * Le premier élément du tableau sera égal à la chaîne source qui correspond au modèle spécifié * /
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 présente pas toutes les possibilités et les délices des expressions régulières. Pour approfondir ce problème, je vous conseillerais 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 valider la saisie d’un message électronique, une expression régulière qui, pour JavaScript, ressemble à PHP,
/ [0-9a-z_] + @ [0-9a-z_ ^. [A +] [azaz_2] 3,3 /

Les expressions régulières sont une sorte de modèle de recherche pour certaines combinaisons de caractères dans des chaînes, les expressions régulières étant encadrées par des barres obliques. Ce qui suit sont des littéraux d'expression régulière.

Littéraux

Littéral Description
\ Inclus dans les caractères spéciaux et indique clairement à l'interprète que le caractère suivant n'est pas un littéral. Utilisé avant les codes de caractère octal pour extraire de la mémoire les sous-expressions stockées et pour être utilisé dans le littéral d'expression régulière.
^ Ligne de départ
$ Fin de ligne
* Indique que le caractère précédent doit apparaître dans la chaîne plusieurs fois ou non.
+ Indique que le caractère précédent doit apparaître une ou plusieurs fois dans la chaîne.
? Indique que le caractère précédent doit apparaître dans la chaîne une fois ou non.
{numéro} Indique que le caractère précédent doit figurer dans la chaîne le nombre de fois spécifié.
{numéro} Indique que le caractère précédent doit figurer dans la chaîne spécifiée en nombre de fois ou plus.
{number1, number2} Indique que le caractère précédent doit figurer dans la chaîne 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é sauvegardé à l'aide du littéral précédent
symbole1 | symbole 2 À la recherche d'un des deux personnages
[jeu de caractères] Recherche un personnage de l'ensemble donné
[^ jeu de caractères] Recherche n'importe quel caractère qui n'est pas dans le jeu.
\ b Signifie limite de mot, position entre mot et espace
\ B Indique la limite de l'espace, la position entre l'espace et le mot
\ c Correspond à un caractère de contrôle tel que "Ctrl" + "caractère"
\ d N'importe quel nombre
\ D Tout caractère non numérique
\ f Caractère de traduction de page
\ n Caractère Newline
\ r Caractère de retour de chariot
\ s Espace, tabulation, nouvelle ligne ou saut de ligne
\ t Onglets
\ v Onglet vertical
\ w Lettre, chiffre ou trait de soulignement
\ xCode Caractère avec le code hexadécimal spécifié
\ oCode Symbole avec code indiqué
\ numéro de groupe Récupère un groupe de caractères précédemment enregistré avec un nombre spécifié de la mémoire

Exemple

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

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

Classe RegExp

Cette classe est responsable de la gestion des chaînes avec des expressions regalear. 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", entre guillemets. Le paramètre "flags" est une condition de recherche supplémentaire 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.
  • i - casse des caractères ignorée
  • m - recherche multiligne

Pour travailler avec des instructions régulières, trois méthodes de la classe String sont utilisées:

  • match - effectue une recherche dans une chaîne en utilisant une 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 résultante.
  • search - effectue une recherche dans une chaîne en utilisant une expression régulière passée en tant que paramètre et renvoie la position de la première sous-chaîne qui correspond à l'expression régulière.

Propriétés

Propriété Description
lastIndex Définit la position pour commencer la recherche dans la chaîne.
sourse Renvoie une chaîne d'expression régulière (lecture seule)
global Détermine si l'indicateur g est présent et renvoie true ou false, respectivement.
ignorer cas Détermine la présence de l'indicateur i et renvoie true ou false, respectivement.
multilane Détermine si l'indicateur m est présent et renvoie true ou false, respectivement.

Les méthodes

Méthode Description
compiler ( publication régulière 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 ) Elle est similaire à la méthode de correspondance de la classe String, mais la chaîne dans laquelle la recherche doit être effectuée est transmise en tant que paramètre.
test ( chaîne ) Semblable à 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 partie 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. Le format d'accès à ses propriétés:

  RegExp.  la propriété
 

Propriétés

Propriété Description
$ nombre de sous-expressions Retourne l'une des dernières sous-expressions trouvées (en fonction du nombre). Le nombre peut être compris entre 1 et 9, car l'interprète stocke uniquement les neuf dernières sous-expressions trouvées dans cette propriété. Pour accéder au reste, le tableau renvoyé par les méthodes match ou exec est utilisé.
index Retourne la position dans la chaîne de la sous-chaîne trouvée.
entrée | & _ Retourne la chaîne où chercher
lastIndex Définit la position pour commencer la recherche dans la 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 une expression régulière.
leftContext | $ ' Retourne une chaîne composée de tous les caractères du début de la chaîne à la dernière sous-chaîne trouvée, sans l'inclure
rightContext | $ ' Renvoie une chaîne composée de tous les caractères de la dernière sous-chaîne trouvée, sans l'inclure, jusqu'à la fin de la chaîne d'origine.

Exemples d'expressions régulières

URL d'analyse

	 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 parties. Dans l'expression régulière, plusieurs sous-expressions ont été utilisées, qui sont enregistrées par l'interpréteur comme suit: d'abord, l'expression externe est enregistrée, puis l'expression interne. L'expression régulière est suivie d'une chaîne (result = re.exec (str);), qui commence à casser l'adresse, puis la correction de l'adresse est vérifiée et, dans le cas d'un résultat positif, l'affectation des parties correspondantes de l'adresse aux variables.

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

	 fonction trim (str)
	 {
	  retourne 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])) ...