Les regex en Javascript

Parent Previous Next



Les regex en Javascript



La syntaxe des regex en Javascript découle de la syntaxe des regex du langage Perl. C'est un langage assez utilisé pour l'analyse et le traitement des données textuelles (des chaînes de caractères, donc), en raison de la puissance de ses expressions régulières. Le Javascript hérite donc d'une grande partie de la puissance des expressions régulières de Perl.


Si vous avez déjà appris le PHP, vous avez certainement vu que ce langage supporte deux types de regex : les regex POSIX et les regex PCRE. Ici, oubliez les POSIX ! En effet, les regex PCRE sont semblables aux regex Perl (avec quelques nuances), donc à celles du Javascript.


Utilisation


Les regex ne s'utilisent pas seules, et il y a deux manières de s'en servir : soit par le biais de RegExp qui est l'objet qui gère les expressions régulières, soit par le biais de certaines méthodes de l'objet String :


Nous n'allons pas commencer par ces quatre méthodes car nous allons d'abord nous entraîner à écrire et tester des regex. Pour ce faire, nous utiliserons la méthode test() fournie par l'objet RegExp. L'instanciation d'un objet RegExp se fait comme ceci :

var myRegex = /contenu_à_rechercher/;


Cela ressemble à une chaîne de caractères à l'exception près qu'elle est encadrée par deux slashs / au lieu des apostrophes ou guillemets traditionnels.


Si votre regex contient elle-même des slashs, n'oubliez pas de les échapper en utilisant un anti-slash comme suit :

var regex_1 = /contenu_/_contenu/; // La syntaxe est fausse car le slash n'est pas échappé

var regex_2 = /contenu_\/_contenu/; // La syntaxe est bonne car le slash est échappé avec un anti-slash


L'utilisation de la méthode test() est très simple. En cas de réussite du test, elle renvoie true ; dans le cas contraire, elle renvoie false.

if (myRegex.test('Chaîne de caractères dans laquelle effectuer la recherche')) {

  // Retourne true si le test est réussi

} else {

  // Retourne false dans le cas contraire

}


Pour vos tests, n'hésitez pas à utiliser une syntaxe plus concise, comme ceci :

if (/contenu_à_rechercher/.test('Chaîne de caractères bla bla bla'))


Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit

Site à deux balles