Discussion: regexp, match
Afficher un message
Vieux 25/09/2007, 10h55   #34
Pierre Goiffon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: La lumiere ? [Fut : regexp, match]

Olivier Miakinen wrote:
> En effet, contrairement à ce que je croyais, rajouter le flag g ne
> permet pas de retrouver toutes les occurrences en un seul appel, mais
> chaque nouvel appel de exec() donne une nouvelle occurrence (en fonction
> de la valeur de lastIndex).
>
> Comme tu l'as déjà constaté, ne pas mettre le flag g résoud le problème
> (dans ce cas, lastIndex est remis à zéro au début de l'appel de exec).


Extrait de la doc Netscape "JavaScript 1.3 Client Reference", sur la
méthode exec :

----8<----8<----
If your regular expression uses the "g" flag, you can use the exec method
multiple times to find successive matches in the same string. When you
do so,
the search starts at the substring of str specified by the regular
expression’s
lastIndex propertyproperty. For example, assume you have this script:
<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/ab*/g;
str = "abbcdefabh"
myArray = myRe.exec(str);
document.writeln("Found " + myArray[0] +
". Next match starts at " + myRe.lastIndex)
mySecondArray = myRe.exec(str);
document.writeln("Found " + mySecondArray[0] +
". Next match starts at " + myRe.lastIndex)
</SCRIPT>
This script displays the following text:
Found abb. Next match starts at 3
Found ab. Next match starts at 9
----8<----8<----

Je ne suis pas sûr que cette doc soit toujours disponible en ligne ?
  Réponse avec citation
 
Page generated in 0,04995 seconds with 9 queries