Il reste deux méthodes de String à voir, search() et match(), plus un petit retour sur la méthodesplit().
La méthode search(), toujours de l'objet String, ressemble à indexOf() mis à part le fait que le paramètre est une expression régulière. search() retourne la position de la première occurrence trouvée. Si aucune occurrence n'est trouvée, -1 est retourné. Exactement comme indexOf() :
var sentence = 'Si ton tonton';
var result = sentence.search(/\bton\b/);
if (result > -1) { // On vérifie que quelque chose a été trouvé alert('La position est ' + result); // 3 } |
La méthode match() de l'objet String fonctionne comme search(), à la différence qu'elle retourne un tableau de toutes les occurrences trouvées. C'est pratique pour compter le nombre de fois qu'une portion de texte est présente par exemple :
var sentence = 'Si ton tonton tond ton tonton, ton tonton tondu sera tondu';
var result = sentence.match(/\btonton\b/g);
alert('Il y a ' + result.length + ' "tonton" :\n\n' + result); |
Il y a trois occurrences de « tonton »
Nous avions vu que la méthode split() recevait une chaîne de caractères en paramètre. Mais il est également possible de transmettre une regex. C'est très pratique pour découper une chaîne à l'aide, par exemple, de plusieurs caractères distincts :
var family = 'Guillaume,Pauline;Clarisse:Arnaud;Benoît;Maxime'; var result = family.split(/[,:;]/);
alert(result); |
L'alert() affiche donc un tableau contenant tous les prénoms, car il a été demandé à split() de couper la chaîne dès qu'une virgule, un deux-points ou un point-virgule est rencontré.
Créé avec HelpNDoc Personal Edition: Créer de la documentation iPhone facilement