Auteur: Ludovic PATEY

Publié le 21 février 2008

Modifié le: 21 février 2008

Page d'accueil

La classe RegExp

Vous êtes ici : Accueil / Cours / Cours de Javascript / Progresser en Javascript

Une expression régulière est un motif qui correspond à des ensembles de chaînes de caractères. Elle permet de filtrer des chaînes pour s’assurer de leur validité dans les formulaires, d’extraire des parties de chaînes comme par exemple pour en sortir les adresses email...

Le but de cette partie n’est pas d’enseigner leur syntaxe, mais leur utilisation dans le cadre du Javascript. Un excellent site à connaître absolument est RegExp.com :

REGEXP

Les expressions régulières en PHP

Instanciation de la classe RegExp

Il existe 2 syntaxes pour instancier une expression régulière : en faisant un appel explicite à la classe ou en entourant une chaîne de slashes :

// Instanciation explicite
var regexp = new RegExp( 'mon_expression' );

// Instanciation explicite avec options
var regexp = new RegExp( 'mon_expression', 'options' );

// Forme simplifiée
var regexp = /mon_expression/option;

// Affiche true
alert( regexp instanceof RegExp );

Propriétés de la classe RegExp

PropriétéR/WDescription
globalRVaut true si l’option g est activée
ignoreCaseRVaut true si l’option i est activée
inputRCorrespond à la chaîne que l’on a testée
lastIndexRCorrespond à la position à partir de laquelle la prochaine recherche va s’effectuer
lastMatchRCorrespond aux derniers caractères trouvés
lastParenRCorrespond aux derniers caractères capturés par des parenthèses
leftContextRCorrespond à la chaîne à gauche de la dernière occurrence
multilineRVaut true si l’option m est activée
rightContextRCorrespond à la chaîne à droite de la dernière occurence
sourceRCorrespond à l’expression régulière qui sert à faire les tests

Méthodes de la classe RegExp

MéthodeDescription
RegExp compile( String reg [, String options] )Redéfinit l’expression régulière.
Array exec( String )Applique l’expression régulière à une chaîne et en retourne les valeurs trouvées.
bool test( String )Teste si une chaîne correspond au motif

Exécuter une fonction de callback à chaque occurrence

La classe String possède une méthode très puissante : replace() Cette méthode peut posséder comme premier argument une expression régulière, et comme second argument une fonction de callback :

var str = "Hello World";

str = str.replace( /[A-Z]/g, function( occurrence, index, chaine ) {

       alert( 'Occurrence trouvée : ' + occurrence );

       return occurrence.toLowerCase();

} );

// Affiche hello world
alert( str );

Commentaires

Auteur :

Message :