Lit bébé sur les expressions régulières JavaScript

Par thème:


Description générale

Les expressions régulières sont des modèles pour rechercher des combinaisons déterminées de caractères dans des chaînes de texte (appelées une recherche pattern matching). Il existe deux méthodes d'attribution des expressions régulières variables, à savoir:
L' utilisation d' un initialiseur d'objet: var re = / pattern / switch ?.
Utilisation du constructeur RegExp: var re = new RegExp ( " pattern" [, "switch"]?).
Ici modèle - expression régulière, et le commutateur - option options de recherche.

Initialiseur objet, par exemple, var re = / ab + c /, à appliquer dans les cas où la valeur de l'expression régulière reste inchangé au cours de script. Ces expressions régulières sont compilées au cours de script de démarrage et peut donc être plus rapide.

Appeler le constructeur, par exemple, var re = new RegExp ( " ab + c»), doit être utilisé dans les cas où la valeur de la variable variera. Si vous allez utiliser une expression régulière plus d'une fois, il est logique de compiler sa méthode de compilation des modèles de recherche plus efficaces.

Lorsque vous créez une expression régulière doit être considéré que la conclusion de celui-ci entre guillemets implique la nécessité d'utiliser l'évasion-séquence, comme dans toute autre chaîne constante. Par exemple, les deux expressions suivantes sont équivalentes:

	 var re = / \ w + / g;
	 var re = new RegExp ( "\\ w +", "g");  // Dans le "\" devrait être remplacé par "\\"
	

Note: L'expression régulière ne peut être vide: deux caractères // ligne définissent 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 des méthodes de exec et RegExp test objet et les méthodes de jeu, remplacer, rechercher et chaîne d'objet partagé. Si nous avons juste besoin de vérifier si une sous-chaîne donnée, conforme au modèle qui utilise les méthodes d'essai ou de recherche. Si, cependant, nous avons besoin d'extraire une sous-chaîne (ou chaîne), conforme au modèle, alors nous devrons utiliser les méthodes de exec ou d'un match. remplacer la méthode fournit une recherche pour une chaîne donnée et de le remplacer par une autre chaîne, et la méthode split vous permet de diviser une chaîne en plusieurs sous-chaînes, sur la base de l'expression régulière ou régulière chaîne de texte. Pour plus d'informations sur l'utilisation des expressions régulières, reportez-vous aux méthodes appropriées.

syntaxe d'expression régulière

Une expression régulière peut consister en caractères ordinaires; auquel cas il correspondra à la combinaison prédéterminée de caractères dans la chaîne. Par exemple, l'expression / com / correspond aux chaînes sélectionnées dans les lignes suivantes: "Lump", "gourmand", "commandant de la Marine." Cependant, la flexibilité et la puissance des expressions régulières donne la possibilité d'utiliser leurs caractères spéciaux qui sont répertoriés dans le tableau suivant.

Les caractères spéciaux dans les expressions régulières:

\ - Pour les caractères qui sont habituellement traités littéralement, indique que le caractère suivant est spécial. Par exemple, / n / est la lettre n, et / \ n / correspond à un saut de ligne. Pour les caractères qui sont habituellement traités spécialement, il indique que le caractère doit être pris à la lettre. Par exemple, / ^ / cela signifie que le début de la chaîne, et / \ ^ / ^ correspond à un caractère. / \\ / Matches backslash \.

^ - Match le début de la ligne.

$ - Correspond à la fin de la ligne.

* - Correspond à itérer du symbole précédent zéro ou plusieurs fois.

+ - Correspond la répétition de caractère précédent d'une ou plusieurs fois.

? - Correspond à itérer de symbole précédent zéro ou une fois.

. - Correspond à tout caractère sauf un saut de ligne.

(Pattern) - Correspond au motif de lignes et mémorise la correspondance trouvée.

(?: Motif) - Correspond au motif de ligne, mais ne se souvient pas les matchs. Il est utilisé pour regrouper les unités d'échantillonnage, par exemple, / à (Tonnes | shka?) / - Un raccourci expression / chat | chat /.

(= Modèle?) - Conformité aux normes "pressentant", se produit lorsque la ligne de motif de ligne sans mémoriser des correspondances trouvées. Par exemple, / Windows (= 95 |? 98 | NT | 2000) / correspond à "Windows" dans la ligne "98 Windows", mais ne correspond pas à la ligne "Windows 3.1". Après avoir fait correspondre la recherche continue de la position à venir suivant après trouvé la correspondance, sans prévoir.

(Motif ?!) - Respect des "pressentant", se produit lorsque le motif chaîne décalage sans mémoriser des correspondances trouvées. Par exemple, / Windows (95 | 98 ?! | NT | 2000) / correspond à "Windows" dans la ligne "Windows 3.1", mais ne correspond pas dans une rangée, «le 98 Windows". Après avoir fait correspondre la recherche continue de la position à venir suivant après trouvé la correspondance, sans prévoir.

x | y - Matchs x ou y.

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

{N,} - n - un nombre entier non négatif. Matches n ou plusieurs occurrences du caractère précédent. / X {1} / équivalent / x + /. / X {0} / équivalent / x * /.

{N, m} - n et m - un nombre non négatif. Elle correspond à pas moins de n et m ne dépasse pas les occurrences du caractère précédent. / X {0,1} / équivalent / x? /.

[Xyz] - Correspond à tout caractère dans le entre crochets.

[^ Xyz] - Correspond à tout caractère autre que entre crochets.

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

[^ Az] - Correspond à tout caractère sauf se situent dans la plage spécifiée.

\ B - Match une limite de mot, qui est, la position entre un mot et un espace ou un saut de ligne ...

\ B - Matchs toute autre position que d' une limite de mot.

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

\ D - le chiffre correspondant. Equivalent à [0-9].

\ D - Répond avec des caractères non numériques. Equivalent à [^ 0-9].

\ F - Correspond au format de transfert de caractères (FF).

\ N - Correspond à un caractère de saut de ligne (LF).

\ R - Correspond à un retour chariot (CR).

\ S - correspond à l'espace de caractère. Equivalent / [\ f \ n \ r \ t \ v] /.

\ S - Correspond à tout caractère non-blanc. Equivalent / [^ \ f \ n \ r \ t \ v] /.

\ T - Correspond à un onglet (HT).

\ V - Correspond à un onglet vertical (VT).

\ W - Correspond à lettres, des chiffres ou de soulignement. Equivalent / [A-Za-z0-9_] /.

\ W - correspond à tout caractère sauf les lettres, des chiffres ou des caractères de soulignement. Equivalent / [^ A-Za-z0-9_] /.

\ N n - nombre positif. Conforme à la chaîne n-ième mémorisé. Il est calculé en comptant les parenthèses gauche. Si la parenthèse gauche avant que le symbole est inférieur à n, alors équivalent à \ 0n.

\ 0n n - nombre octal, pas plus de 377. correspond au caractère avec le code octal n. Par exemple, / \ 011 / équivalent / \ t /.

\ N x n - un nombre hexadécimal constitué de deux nombres. Correspond au caractère avec le code hexadécimal n. Par exemple, / \ x31 / équivalent / 1 /.

\ N non - un nombre hexadécimal composé de quatre chiffres. Correspondant caractères Unicode avec le code hexadécimal n. Par exemple, / \ u00A9 / équivalent / c /.

Les expressions régulières sont calculées de façon similaire au reste des expressions JavaScript, soit, en tenant compte de la priorité des opérations: .. Opérations avec une priorité plus élevée sont exécutés en premier. Si les opérations ont la même priorité, ils sont exécutés de gauche à droite. Le tableau suivant présente les opérations d'expressions régulières dans l'ordre de leurs priorités descendant; fonctionnement, disposé dans une ligne de la table, ont la même priorité.

opérations:
  \
 () (? :) (? =), (?!) []
	 +?  .  {N} {n} {n, m}
	 ^ $ \ Wildcard
	 |
	

Options de recherche

Lorsque vous créez une expression régulière, nous pouvons spécifier des options de recherche supplémentaires:
i (ignorer la casse). Ne pas faire la distinction entre les lettres majuscules et minuscules.
g (recherche globale). la recherche globale pour toutes les occurrences de l'échantillon.
m (multiline). Multi Recherche.
Toute combinaison de ces trois options, par exemple ig ou GIM.

exemple

	 = "La langue d'apprentissage JavaScript" de var;
	 var re = / JAVA /;
	 var result = re.test (s)?  "" "" "Non";
	 document.write ( "string" "+ s + résultat +" correspond au modèle "+ re);
	

Depuis des expressions régulières de distinction entre les lettres majuscules et minuscules, cet exemple affiche le texte dans la fenêtre du navigateur:

La chaîne «langue d' apprentissage JavaScript" ne correspond pas au modèle / JAVA /

Si l'on remplace maintenant la deuxième ligne dans l'exemple var re = / JAVA / i;, l'écran affichera le texte:

La chaîne "de la langue d' apprentissage JavaScript» correspond au modèle / JAVA / i


Considérons maintenant l'option globale de recherche. Il est couramment utilisé la méthode de remplacer dans la recherche de l'échantillon et le remplacer par une nouvelle chaîne. Le fait est que, par défaut, cette méthode ne remplace que la première chaîne et renvoie le résultat. Considérez le scénario suivant:

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

Il affiche dans le texte de la fenêtre du navigateur qui ne correspond pas au résultat souhaité: Nous écrivons les scripts dans le VBScript, mais JavaScript - n'est pas le seul langage de script. Pour toutes les occurrences de lignes "JavaScript" ont été remplacés par "VBScript", nous devons changer l'expression régulière var re = / JavaScript / g; . Ensuite, la chaîne résultante ressemblera:

Nous écrivons les scripts en VBScript, mais VBScript - n'est pas le seul langage de script.

Enfin, une option de recherche multi-ligne permet de pattern matching chaîne qui se compose de plusieurs lignes de texte, reliés par un saut de ligne. Par défaut, le filtrage est terminé si on trouve le symbole d'un saut de ligne. Cette option permet de surmonter cette limitation et fournit une liste de l'échantillon à travers la ligne de départ. Elle affecte également l'interprétation de certains des caractères spéciaux dans les expressions régulières, à savoir: Habituellement symbole ^ correspond seulement le premier élément de la ligne. Si l'option de recherche multi-ligne est activé, il est comparé à un élément de ligne, qui est précédé par le symbole d'un saut de ligne. Normalement $ caractère correspond seulement avec le dernier élément de la ligne. Si l'option de recherche multi-ligne est activé, il est comparé à un élément de ligne, ce qui est un saut de ligne.

Se souvenant de la chaîne trouvée

Si une partie d'une expression régulière entre parenthèses, puis la sous-chaîne correspondante sera stockée pour une utilisation ultérieure. Pour accéder aux chaînes mémorisées propriétés utilisées 1 $,:, 9 $ objet RegExp ou des éléments dans le tableau renvoyé par exec and match. Dans ce dernier cas, le nombre détecté et substrings stockés ne se limite pas.

Le script suivant utilise la méthode replace pour réorganiser les mots dans une rangée. Pour remplacer le texte trouvé utilise les propriétés de 1 $ et 2 $.

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

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

Boulgakov, Mikhail

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

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

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

Boulgakov, Mikhail

introduction

concepts

Les expressions régulières - est un outil puissant pour traiter les données entrantes. Le problème qui doit remplacer ou rechercher le texte peut être magnifiquement fini avec cette «langue dans un langage." Bien que l'effet maximal d'expressions régulières peut être obtenue avec l'utilisation des langues côté serveur, sous-estiment encore le potentiel de cette application et du côté client.

Expressions rationnelles (expression régulière) , - des moyens pour traiter la séquence des lignes ou des caractères définissant le modèle de texte.

Modificateur - conçu pour «instruire» l'expression régulière.
Métacaractères - caractères spéciaux qui servent de commandes régulièrement la langue d'expression.

Une expression régulière est définie comme une variable ordinaire, mais au lieu d'utiliser des citations slash, par exemple:

  var reg = / reg_vyrazhenie / 

Selon les modèles les plus simples que nous comprenons ces modèles, qui ne nécessitent pas de symboles spéciaux.

Par exemple, notre objectif est de remplacer toutes les lettres «p» (petites et capital) à la lettre majuscule latine "R" dans la phrase Expression régulière.

Créer un modèle var reg = / p / et utiliser la méthode remplacer la mise en œuvre des plans

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

Le résultat est la chaîne 'RegulyaRnye expression «remplacement se produit uniquement sur la première occurrence de la lettre« p »est sensible à la casse. Mais dans les conditions de notre problème ce résultat ne correspond pas ... Ici, nous devons le modificateur "g" et "i", qui peut être utilisé à la fois séparément et ensemble.
Ces modificateurs sont placés à la fin du modèle d'expression régulière, après la barre oblique, et ont les significations suivantes: le modificateur "g" - spécifie la chaîne de recherche en tant que «global», à savoir dans ce cas, le remplacement se produit pour toutes les occurrences de la lettre "p". Maintenant, le modèle ressemble à ceci: var reg = / p / g, en remplaçant dans notre code

	 <Language Script = "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 'RegulyaRnye vyRazheniya'.

Le modificateur "i" - définit la recherche dans la chaîne insensible à la casse, en ajoutant ce modificateur dans notre modèle var reg = / p / gi, après l'exécution du script, nous obtenons le résultat souhaité de notre problème - 'RegulyaRnye vyRazheniya'.

Caractères spéciaux (wildcards)

Wildcards préciser le type de la chaîne de caractères, le chemin de la chaîne de recherche dans l'environnement de texte, ainsi que le nombre de caractères dans un type particulier de texte que vous voyez. Par conséquent, wildcards peuvent être divisés en trois groupes:

Matches Recherche Wildcards.
méta-caractères quantitatifs.
Métacaractères positionnement.
Matches Recherche Wildcards

\ B limite de mot, définit les conditions dans lesquelles le modèle doit être effectué au début ou à la fin des mots.

\ B pas un mot frontière, définit les conditions dans lesquelles le modèle ne soit pas exécutée au début ou à la fin d'un mot.

\ D est un nombre de 0 à 9.

\ D est pas un nombre.

seul caractère null de \ correspond à l'espace de caractère.

\ S non vide caractère unique à un seul caractère , sauf un espace.

\ W lettre, chiffre ou de soulignement.

\ W ne sont pas des lettres, des chiffres ou le trait de soulignement.

. tout caractère, tous les caractères, lettres, chiffres, etc.

[] Jeu de caractères, définit les conditions dans lesquelles le modèle doit être effectuée dans tous les caractères correspondants entre crochets.

[^] Jeu de caractères non-, définit les conditions dans lesquelles le modèle ne doit pas être effectuée pour tous les caractères correspondants entre crochets.

wildcards quantitatives

* Zéro ou plusieurs fois.

? Zéro ou une fois

+ A plusieurs fois.

{n} exactement n fois.

{N} n fois ou plus.

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

positionnement métacaractères

^ Au début de la ligne.

lignes $ End.

Certaines méthodes pour travailler avec des modèles

remplacer - la méthode utilisée au début de cet article, il est conçu pour rechercher et remplacer l'échantillon sous - chaîne correspondante avec une nouvelle sous - chaîne.

Test - cette méthode vérifie s'il y a un match dans une rangée par rapport au modèle et retourne false, si la correspondance de motif soldée par un échec, sinon vrai.

exemple

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

affiche les résultats sous forme de faux, puisque string "JavaScript" ne correspond pas à la chaîne "PHP".

Méthode d'essai peut également retourner vraie ou fausse, la place d'une autre chaîne spécifiée par le programmeur.
Par exemple:

	 <Language Script = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var result = reg.test (str)?  "La chaîne matched": "La chaîne n'a pas coïncidé"
		 document.write (résultat)
	 </ Script>
	
dans ce cas comme un résultat est la chaîne "string ne coïncidaient".

exec - cette méthode effectue une comparaison de chaîne de l'échantillon, le motif spécifié. Si la correspondance de motif soldée par un échec, alors NULL est renvoyée. Dans le cas contraire, le résultat est un tableau de chaînes correspondant à un modèle donné. / * Le premier élément du tableau est égale à la chaîne d'origine satisfaisant au motif donné * /
Par exemple:

	 <Language Script = "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 ( "Anniversaire:", arr [1], "<br>")
		 document.write ( "Mois de naissance:", arr [2], "<br>")
		 document.write ( "Date de naissance:", arr [3], "<br>")
	 </ Script>
	

Le résultat est de quatre lignes:
Date de naissance: 15/09/1980
Anniversaire: 15
Mois de naissance: 09
Année de naissance: 1980

conclusion

L'article ne s'affiche toutes les caractéristiques et le charme des expressions régulières pour une étude plus approfondie de cette question suggère d'examiner la RegExp objet. Juste je veux attirer l'attention sur le fait que la syntaxe d'expression régulière ne pas différent que comme en JavaScript, et PHP. Par exemple, pour valider l'entrée e-mail, expression régulière, que JavaScript, vous qui allez regarder la même chose pour PHP
/[0-9a-z_]+@[0-9a-z_^.]+.[az]{2,3}/i.

Les expressions régulières - est une sorte de motifs de recherche de certaines combinaisons de caractères dans les chaînes avec les expressions régulières sont les barres obliques. Voici les expressions régulières littérales.

littéraux

littéral description
\ Inclus dans les caractères spéciaux, et fait aussi clairement à l'interprète que le caractère suivant - pas littéral. Utilisé pour octal codes de caractères, récupérer subexpressions enregistrés et pour une utilisation dans l'expression régulière littérale.
^ A partir de la ligne
$ Fin de ligne
* Cela signifie que le caractère précédent doit répondre dans une rangée plusieurs fois, ou ne pas répondre
+ Cela signifie que le caractère précédent doit rencontrer dans la barre une ou plusieurs fois
? Cela signifie que le caractère précédent doit répondre dans une rangée un moment ou rencontrer
{Nombre} Cela signifie que le caractère précédent, doit répondre à une chaîne d'un nombre spécifié de fois
{Nombre} Cela signifie que le caractère précédent, doit répondre à une chaîne un nombre spécifié de fois ou plus
{Nombre1, nombre2} Cela signifie que le caractère précédent doit se réunir en une ligne de la première à la deuxième nombre de fois
. Correspond à tout caractère sauf \ n (nouvelle ligne)
(Sous-expression) A la recherche de sous-expression et magasins je trouve un groupe de caractères
\ Numéro de groupe Extrayez le groupe spécifié de caractères stockés à l'aide de la précédente littérale
simvol1 symbole | 2 Comparer l'un des deux personnages
[Jeu de caractères] Recherchez le symbole des tâches définies
[^ Jeu de caractères] Recherchez tout caractère qui ne sont pas inclus dans l'ensemble
\ b Indique une limite de mot, la position entre un mot et un espace
\ B Indique l'espace frontalier, la position entre un mot et un espace
\ c Correspond au type de caractère de contrôle "symbole" "Ctrl" +
\ d Tout nombre
\ D Tout caractère non-numérique
\ f caractère formfeed
\ n newline
\ r caractère de retour chariot
\ s Espace, onglet, nouvelle ligne ou saut de ligne
\ t languette
\ v tabulation verticale
\ w Lettres, chiffres, ou de soulignement
\ xKod shesnadtsaterichnym avec le symbole de code spécifié
\ oKod vosmerichnym avec le symbole de code spécifié
\ Numéro de groupe Extraits de la mémoire, un groupe précédemment enregistré des caractères avec un nombre spécifié

exemple

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

Cette expression est à la recherche d'une adresse e-mail, en le divisant en deux parties: le nom de la boîte aux lettres et le nom du serveur, et les stocke dans la mémoire comme un groupe de caractères, numérotés 1 et 2.

classe RegExp

Cette classe est responsable du traitement via des lignes de les expressions. Son constructeur prend la forme suivante:

  RegExp (drapeaux d'expression régulière)

	

Il suffit d'un paremetr obligatoire - une "expression régulière", qui est entre guillemets. Les "flags" sont des termes de recherche supplémentaires et peuvent prendre les valeurs:

  • g - est donnée une recherche globale, si cette option est activée, alors l'expression sera de retour tous les bons mots.
  • i - ignorer la casse
  • m - multi-recherche

Pour travailler avec varazheniyami régulière sont trois méthode de la classe String:

  • match - recherches dans une chaîne en utilisant une expression régulière passée en paramètre et retourne un tableau avec les résultats de la recherche. Si on ne trouve rien, il retourne null.
  • replase - effectue la recherche et remplacer dans une chaîne en utilisant une expression régulière, et renvoie la chaîne résultante.
  • Recherche - effectue põik en ligne, en utilisant une expression régulière passée en paramètre, et renvoie la position de la première chaîne qui correspond à l'expression régulière.

propriétés

propriété description
lastIndex Définit la position de départ dans la barre de recherche
sourse Renvoie la chaîne d'expression régulière (lecture seule)
global Détermine si le drapeau g et retourne sootvetsyavenno vrai ou faux
ignoreCase Détermine si le drapeau i, et renvoie sootvetsyavenno vrai ou faux
multilane Détermine si le drapeau m sootvetsyavenno et retourne vrai ou faux

méthodes

méthode description
compiler (vypazhenie régulier g, i, m) expression régulière Kompeliruet dans un format interne pour un fonctionnement plus rapide peut être utilisé pour modifier l'expression régulière
exec (string) Similaire à la méthode correspond à la chaîne de classe, mais la ligne où vous voulez rechercher, passé en paramètre
test (str) Similaire à la méthode la classe String de recherche, renvoie true ou false selon les résultats de la recherche

exemple

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

Ici, cette section du script recherche pour le texte "www" dans la ligne, qui a été assignée à une variable "str" ​​méthode insensible et correspondance retourne un tableau de résultat, contenant les résultats de la recherche.

L'objet RegExp global

Cet objet global est utilisé pour bostupa aux résultats en utilisant des expressions régulières de recherche. Cet objet est créé par l'interpréteur et est toujours disponible. Format accès à ses propriétés:

  RegExp.  propriété
 

propriétés

propriété description
Nombre $ subexpression Elle retourne l'un des derniers subexpression adapté (selon le nombre). Le nombre peut être 1-9, les magasins de t.k.interpretator cette propriété est seulement neuf derniers subexpression appariés, pour l'accès au reste du réseau est utilisé, le moyen de rappel match ou exec
index Retours pozotsiyu dans une rangée appariés substring
entrée | & _ Retourne une chaîne qui est recherchée
lastIndex Définit la position de départ dans la barre de recherche
lastMatch | $ & Retourne la dernière chaîne correspondante
lastParent | $ + Renvoie la dernière occurrence d'un groupe de caractères, si elle est utilisée dans une sous-expression d'expression régulière
leftContext | $ ' Renvoie une chaîne composée de tous les caractères de la ligne de départ à la dernière chaîne correspondante, non compris
rightContext | $ ' Renvoie une chaîne composée de tous les personnages de la dernière occurrence de la sous-chaîne, ne pas l'inclure, jusqu'à la fin de la chaîne

Des exemples de l'utilisation des expressions régulières

URL Parsing

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

Ce script rompt l'adresse Internet de quelques composants. En termes de regelyarnom plusieurs sous-expressions utilisées sont enregistrées interprète comme suit: d'abord, retenu l'expression extérieure, puis en interne. Après une expression régulière suivie d'une chaîne (résultat = re.exec (str);), qui commence la rupture des adresses et l'adresse est correcte et vérifiée en outre, dans le cas d'un résultat positif, il y a une affectation de variable aux parties pertinentes de l'adresse.

Fonction supprimer les espaces au début et à la fin de la ligne

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

Recherche musique sur la page

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