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

Crib sur les expressions régulières JavaScript

Par sujet:


Description générale

Les expressions régulières sont des modèles de recherche de combinaisons de caractères spécifiques dans les chaînes de texte (une telle recherche est appelée correspondance avec un modèle). Il existe deux façons d'affecter des variables à des expressions régulières, à savoir:
Utilisation de 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 lors du chargement du script et, par conséquent, sont plus rapides.

L'appel au constructeur, par exemple, var re = new RegExp ("ab + c") , devrait être utilisé dans les cas où la valeur de la variable changera. Si vous allez utiliser l'expression régulière plusieurs fois, il est logique de la compiler en utilisant la méthode de compilation pour trouver des modèles plus efficacement.

Lorsque vous créez une expression régulière, vous devez considérer que l'inclure entre guillemets implique l'utilisation de 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");  // La ligne "\" devrait être remplacée par "\\"
	

Remarque: L' expression régulière ne peut pas être vide: deux caractères // successifs définissent 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 execEx et test de l'objet RegExp et par les méthodes match, replace, search et split de l'objet String. Si nous avons juste besoin de vérifier si cette chaîne contient une sous-chaîne correspondant au modèle, alors 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 devons 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, et la méthode split vous permet de diviser une chaîne en plusieurs substrats, en fonction d'une expression régulière ou d'une chaîne de texte ordinaire. Pour plus d'informations sur l'utilisation des expressions régulières, consultez 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 correspond à la combinaison de caractères spécifiée dans la chaîne. Par exemple, l'expression / com / correspond aux sous-chaînes sélectionnées dans les lignes suivantes: "lump", "gourmet", "naval commander". Cependant, la flexibilité et la puissance des expressions régulières permettent d'utiliser des caractères spéciaux, qui sont listés dans le tableau suivant.

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

\ - Pour les caractères habituellement traités littéralement, cela signifie que le caractère suivant est spécial. Par exemple, / n / correspond à la lettre n et / \ n / correspond au caractère de nouvelle ligne. Pour les caractères généralement traités comme spéciaux, cela signifie que le caractère doit être compris littéralement. Par exemple, / ^ / indique le début de la ligne, et / \ ^ / correspond simplement au caractère ^. / \\ / correspond à la barre oblique inverse \.

^ - Correspond au début de la ligne.

$ - Correspond à la fin de la ligne.

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

+ - Correspond à répéter le 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 de motif et se souvient de la correspondance trouvée.

(?: pattern) - Correspond à la chaîne du motif, mais ne se souvient pas de la correspondance trouvée. Utilisé pour grouper des parties d'un échantillon, par exemple, / to (?: T | scale) / est une courte entrée de l'expression / cat / cat /.

(? = motif) - La correspondance avec "regarder en avant" se produit lorsque la ligne de motif correspond sans se souvenir de la correspondance trouvée. Par exemple, / Windows (? = 95 | 98 | NT | 2000) / correspond à "Windows" dans la ligne "Windows 98", mais ne correspond pas à la ligne "Windows 3.1". Après la mise en correspondance, la recherche continue à partir de la position suivant la correspondance trouvée, sans tenir compte du regard avant.

(?! pattern) - La correspondance avec "regarder en avant" se produit lorsque la ligne de motif ne correspond pas sans se souvenir de la correspondance trouvée. Par exemple, / Windows (?! 95 | 98 | NT | 2000) / correspond à "Windows" dans la chaîne "Windows 3.1", mais ne correspond pas dans la chaîne "Windows 98". Après la mise en correspondance, la recherche continue à partir de la position suivant la correspondance trouvée, sans tenir compte du regard avant.

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 occurrences ou plus du caractère précédent. / x {1,} / est équivalent à / x + /. / x {0,} / est équivalent à / x * /.

{n, m} - n et m est un nombre non négatif. Correspond au moins à n et pas à plus de m occurrences du caractère précédent. / x {0,1} / est équivalent à / x? /.

[xyz] - Correspond à n'importe quel caractère des crochets entre crochets.

[^ xyz] - Correspond à n'importe quel caractère sauf ceux entre crochets.

[az] - Correspond à n'importe quel caractère dans la plage spécifiée.

[^ az] - Correspond à tout caractère autre que ceux compris dans la plage spécifiée.

\ b - Correspond à la limite du mot, c'est-à-dire la position entre un mot et un espace ou un saut de ligne.

\ B - Correspond à n'importe quelle position autre que la limite du mot.

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

\ d - Correspond au chiffre. C'est équivalent à [0-9].

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

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

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

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

\ s - Correspond au caractère d'espace. Equivalent à / [\ f \ n \ r \ t \ v] /.

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

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

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

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

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

\ n n est un nombre positif. Correspond à la nième sous-chaîne stockée. Calculé en comptant les parenthèses de gauche. Si la parenthèse de gauche avant ce caractère est inférieure à n, alors elle est équivalente à \ 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 à un 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 à un caractère Unicode avec n hexadécimal. Par exemple, / \ u00A9 / est équivalent à / c /.

Les expressions régulières sont évaluées de manière similaire au reste des 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 une priorité égale, elles sont exécutées de gauche à droite. Le tableau suivant montre la liste des opérations d'expressions régulières dans l'ordre décroissant de priorité; Les opérations dans une rangée de la table ont la même priorité.

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

Options de recherche

Lorsque vous créez une expression régulière, nous pouvons spécifier des options de recherche supplémentaires:
je (ignore le cas). Ne faites pas la distinction entre les majuscules et les minuscules.
g (recherche globale). Recherche globale pour toutes les occurrences d'un motif.
m (multiligne). Recherche multiligne.
Toutes les combinaisons de ces trois options, par exemple ig ou gim.

Exemple:

	 var s = "Apprendre le langage JavaScript";
	 var re = / JAVA /;
	 var résultat = re.test (s)?  "" ":" "non";
	 document.write ("String" "+ s + résultat +" correspond au motif "+ re);
	

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

La chaîne "Apprendre le langage JavaScript" ne correspond pas à l'exemple / JAVA /

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

La chaîne "Apprendre le langage JavaScript" correspond à l'exemple / JAVA / i


Considérons maintenant l'option de recherche globale. Il est généralement utilisé par la méthode replace lors de la recherche d'un motif et du remplacement de la sous-chaîne trouvée par une nouvelle. Le fait est que par défaut cette méthode remplace seulement 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 scripté.";
	 var re = / JavaScript /;
	 document.write (s.replace (re, "VBScript"));
	

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

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

Enfin, l'option de recherche multiligne vous permet de faire correspondre un motif d'une expression de chaîne constituée de plusieurs lignes de texte, reliées par des caractères de 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 surmonte la contrainte spécifiée et fournit un exemple de recherche sur toute la chaîne source. Cela affecte également l'interprétation de certains caractères spéciaux dans les expressions régulières, à savoir: Habituellement, le caractère ^ est uniquement mappé au premier élément de la chaîne. Si l'option de recherche multiligne est activée, elle est également associée à tout élément de ligne précédé d'un caractère de saut de ligne. Habituellement, le caractère $ correspond seulement au dernier élément de la chaîne. Si l'option de recherche multiligne est activée, elle est également associée à tout élément de ligne qui est un caractère de saut de ligne.

Mémoriser les sous-chaînes trouvées

Si une partie de l'expression régulière est entre parenthèses, la sous-chaîne correspondante sera stocké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 du 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 réorganiser les mots d'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 = "Mikhaïl Boulgakov";
	 document.write (str.replace (re, "$ 2, $ 1"))
	

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

Boulgakov, Mikhail

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

	 var re = / ([a-я] +) \ s ([а-я] +) / i; 
	 var str = "Mikhaïl Boulgakov"; 
	 document.write (str.replace (re, "$ 2, $ 1"));  // Boulgakov, Mikhail
	

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

Boulgakov, Mikhail

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 un remplacement ou une recherche de texte peut être résolue à l'aide de cette "langue dans la langue". Et bien que l'effet maximal des expressions régulières puisse être atteint en utilisant des langages côté serveur, vous ne devez pas sous-estimer les capacités de cette application côté client.

Une expression régulière est un outil de traitement de chaînes ou une séquence de caractères qui définit 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 qui servent de commandes pour le langage d'expression régulière.

Une expression régulière est spécifiée comme une variable ordinaire, seule une barre oblique est utilisée à la place des guillemets, par exemple:

  var reg = / reg_expression / 

Sous les modèles les plus simples, nous comprendrons ces modèles qui n'ont pas besoin de symboles spéciaux.

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

Créer un template var reg = / p / et en utilisant la méthode de remplacement, nous faisons le prévu

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

Par conséquent, nous obtenons la ligne 'expressions REGULAR', le remplacement est survenu seulement à la première occurrence de la lettre "p" avec l'affaire en tête. Mais dans les conditions de notre problème ce résultat ne correspond 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 la barre oblique, et ont les valeurs suivantes: modificateur "g" - définit la recherche sur la ligne comme "globale", c'est-à-dire 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

	 <langage de script = "JavaScript">
		 var str = "Expressions régulières"
		 var reg = / p / g
		 var résultat = str.replace (reg, "R")
		 document.write (résultat)
	 </ script>
	
nous obtenons la ligne «Expressions régulatrices».

Le modificateur "i" - définit la recherche sur la ligne sans tenir compte du cas, en ajoutant ce modificateur à notre modèle var reg = / p / gi, après l'exécution du script, nous obtenons le résultat souhaité de notre tâche - 'expressions ajustables'.

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 méthode d'encadrement de la chaîne de recherche dans le texte, ainsi que le nombre de caractères d'un type individuel dans le texte visualisé. Par conséquent, les métacaractères peuvent être divisés en trois groupes:

Correspond aux métacaractères.
Métacaractères quantitatifs.
Métacaractères de positionnement.
Apparier les métacaractères de correspondance

\ b la limite du mot, spécifie la condition sous laquelle le motif doit être exécuté au début ou à la fin des mots.

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

\ d est un chiffre de 0 à 9.

\ D n'est pas un chiffre.

\ s un seul caractère vide qui correspond au caractère espace.

\ S est un seul caractère non vide, un caractère à l'exception d'un espace.

\ w lettre, nombre ou trait de soulignement.

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

. n'importe quel caractère, n'importe quels caractères, lettres, nombres, etc.

[] jeu de caractères, spécifie la condition sous laquelle le motif doit être exécuté avec toute correspondance des caractères entre crochets.

[^] un ensemble de caractères non entrants, spécifie une condition dans laquelle le modèle ne doit pas être exécuté avec une correspondance quelconque entre les caractères entre crochets.

Métacaractères quantitatifs

* zéro et plusieurs fois.

? Zéro ou une fois

+ Une ou plusieurs fois.

{n} exactement n fois.

{n,} n ou plusieurs fois.

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

Métacaractères de positionnement

^ au début de la ligne.

$ à la fin 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 motif et à remplacer la sous-chaîne trouvée par une nouvelle sous-chaîne.

test - cette méthode vérifie s'il y a une correspondance dans la chaîne par rapport au modèle et renvoie la valeur false si la correspondance du modèle échoue, sinon true.

Exemple:

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

va imprimer faux comme résultat; la chaîne "JavaScript" n'est pas égale à la chaîne "PHP".

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

	 <langage de script = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var résultat = reg.test (str)?  "String Matched": "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 compare la chaîne avec le modèle spécifié par le modèle. Si la correspondance de modèle échoue, null est renvoyé. 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 d'origine qui satisfait le modèle spécifié * /
par exemple:

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

le résultat est quatre lignes:
Date de naissance: 15.09.1980
Anniversaire anniversaire inconnu
Mois de naissance: 09
Année de naissance: 1980

Conclusion

Toutes les fonctionnalités et les délices des expressions régulières ne sont pas affichées dans l'article, pour une étude plus approfondie de ce problème, je vous conseille d'étudier l'objet RegExp. Je veux aussi faire attention au fait que la syntaxe des expressions régulières ne diffère pas en JavaScript ni en PHP. Par exemple, pour vérifier l'exactitude de l'entrée d'e-mail, une expression régulière pour JavaScript, celle de PHP sera la même
/[0-9a-z_]+@[0-9a-z_^.]+.[az]{2,3}/i.

Les expressions régulières sont une sorte de modèle permettant de trouver des combinaisons spécifiques de caractères dans des chaînes, avec des expressions régulières incluses dans des barres obliques. Les littéraux des expressions régulières sont répertoriés ci-dessous.

Littéraux

Littéraux Description
\ Il fait partie des caractères spéciaux, et permet également à l'interprète de comprendre que le caractère suivant n'est pas un littéral. Utilisé avant les codes de caractères octaux pour extraire les sous-expressions stockées de la mémoire et pour utiliser un littéral dans l'expression régulière.
^ Début de ligne
$ Fin de ligne
* Signifie que le personnage précédent doit se rencontrer sur la ligne plusieurs fois ou ne pas rencontrer
+ Signifie que le caractère précédent doit apparaître sur la ligne une ou plusieurs fois
? Signifie que le caractère précédent doit se rencontrer une fois par ligne ou ne pas rencontrer
{numéro} Cela signifie que le caractère précédent doit rencontrer dans la chaîne le nombre de fois spécifié
{numéro,} Signifie que le caractère précédent doit rencontrer dans la chaîne le nombre de fois spécifié et plus
{number1, number2} Signifie que le caractère précédent doit apparaître sur la ligne du premier au second nombre de fois
. Indique tout caractère autre que \ n (nouvelle ligne)
(une sous-expression) Cherche une sous-expression et stocke le groupe de symboles trouvé
\ numéro de groupe Récupère le groupe de caractères spécifié stocké avec le littéral précédent
symbole1 | personnage 2 Recherche l'un des deux caractères
[jeu de caractères] Recherche un personnage d'un ensemble donné
[^ jeu de caractères] Cherche tout personnage non inclus dans l'ensemble
\ b Indique la limite du mot, la position entre le mot et un espace
\ B Indique la limite d'espace, la position entre un espace et un mot
\ c Il coïncide avec le caractère de contrôle de la forme "Ctrl" + "symbole"
\ d N'importe quel nombre
\ D Tout caractère non numérique
\ f Symbole de traduction de page
\ n Nouveau caractère de ligne
\ r Symbole de retour chariot
\ s Espace, tabulation, retour à la ligne ou saut de ligne
\ t Tabulation
\ v Tabulation verticale
\ w Lettre, nombre ou trait de soulignement
\ x Code Symbole avec le code hexadécimal spécifié
\ oCod Symbole avec le code spécifié
\ numéro de groupe Récupère de la mémoire un groupe de caractères précédemment stocké avec un nombre spécifié

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, et les stocke en mémoire sous forme de groupes de caractères sous les numéros 1 et 2.

Classe RegExp

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

  RegExp ( expression régulière , drapeaux )
	

Il ne prend qu'un seul parémètre obligatoire - c'est une "expression régulière", qui est citée. Le paramètre "flags" est une condition de recherche supplémentaire et peut prendre des valeurs:

  • g - définir la recherche globale, si ce drapeau est défini, alors l'expression retournera tous les mots correspondants.
  • i - en ignorant le cas des caractères
  • m - recherche multiligne

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

  • match - effectue une recherche de chaîne en utilisant l'expression régulière passée en 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 retourne la chaîne résultante.
  • search - exécute un pointeur dans une chaîne, en utilisant l'expression régulière passée en 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 Spécifie la position de départ de la recherche dans la ligne
sourse Renvoie une chaîne d'expression régulière (en lecture seule)
global Définit la présence du flag g et renvoie true ou false
ignoreCase Définit la présence de l'indicateur i et renvoie true ou false
multilane Définit la présence du flag m et renvoie true ou false

Méthodes

Méthode Description
compiler ( précipitation 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 de caractères ) Similaire à la méthode match de la classe String, mais la chaîne dans laquelle vous voulez effectuer la recherche est passée en paramètre
test ( chaîne ) Similaire à la méthode de recherche de la classe String, elle 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 casse, et la méthode match renvoie un tableau de résultats contenant les résultats de la recherche.

Objet Global RegExp

Cet objet global permet de tirer parti des résultats de la recherche à l'aide d'expressions régulières. Cet objet est créé par l'interpréteur et est toujours disponible. Le format d'accès à ses propriétés:

  RegExp.  caractéristique
 

Propriétés

Propriété Description
$ numéro de la sous-expression Renvoie 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éteur ne stocke dans cette propriété que les neuf dernières sous-expressions trouvées, pour accéder au reste, un tableau est utilisé, renvoyé par les méthodes match ou exec
indice Renvoie la position dans la chaîne de la sous-chaîne trouvée
entrée | & _ Renvoie la chaîne dans laquelle la recherche est effectuée
lastIndex Spécifie la position de départ de la recherche dans la ligne
lastMatch | $ & Renvoie la dernière sous-chaîne trouvée
dernierParent | $ + Renvoie le dernier groupe de caractères trouvé si l'expression régulière a utilisé des sous-expressions
leftContext | $ ' Renvoie une chaîne composée de tous les caractères du début de la ligne à 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, à la fin de la chaîne d'origine

Exemples d'utilisation d'expressions régulières

Analyser les 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);
	 if (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 stockées par l'interpréteur comme suit: d'abord l'expression externe est stockée, puis l'interne. Après l'expression régulière, la chaîne (result = re.exec (str);) démarre, ce qui commence à casser l'adresse, puis l'exactitude de l'adresse est vérifiée et, en cas de résultat positif, les parties correspondantes de l'adresse sont affectées aux variables.

Fonction de suppression des espaces au début et à la fin d'une ligne

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

Trouver de la musique sur la page

 var mmReg = / (?: http: \ / \ / [\ w.] + \ /)? (?!: \ / \ /) [^ <^> ^ "^ '^ \ s] + \. (? : aiff | au | avi | flv | mid | mov | mp3 | ogg | r | 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])) ...