aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md
diff options
context:
space:
mode:
authorjulieng <julien.gattelier@gmail.com>2021-08-03 08:03:23 +0200
committerSphinxKnight <SphinxKnight@users.noreply.github.com>2021-09-03 08:08:25 +0200
commitbf8e099b9c8b3c60d60b3712b4fc97b052c39887 (patch)
treec101746d082c9581c94f5937519c7d0e2f4af8cb /files/fr/web/javascript/reference/global_objects/regexp/exec/index.md
parent844f5103992238c0c23203286dad16a466e89c97 (diff)
downloadtranslated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.gz
translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.bz2
translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.zip
convert content to md
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/regexp/exec/index.md')
-rw-r--r--files/fr/web/javascript/reference/global_objects/regexp/exec/index.md271
1 files changed, 130 insertions, 141 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md b/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md
index 3245c98358..be53ae8ddd 100644
--- a/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md
+++ b/files/fr/web/javascript/reference/global_objects/regexp/exec/index.md
@@ -10,118 +10,136 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec
original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/exec
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>exec()</code></strong> exécute la recherche d'une correspondance sur une chaîne de caractères donnée. Elle renvoie un tableau contenant les résultats ou {{jsxref("null")}}.</p>
+La méthode **`exec()`** exécute la recherche d'une correspondance sur une chaîne de caractères donnée. Elle renvoie un tableau contenant les résultats ou {{jsxref("null")}}.
-<p>Si on souhaite uniquement savoir s'il y a une correspondance, on utilisera la méthode {{jsxref("RegExp.prototype.test()")}} ou la méthode {{jsxref("String.prototype.search()")}}.</p>
+Si on souhaite uniquement savoir s'il y a une correspondance, on utilisera la méthode {{jsxref("RegExp.prototype.test()")}} ou la méthode {{jsxref("String.prototype.search()")}}.
-<div>{{EmbedInteractiveExample("pages/js/regexp-prototype-exec.html")}}</div>
+{{EmbedInteractiveExample("pages/js/regexp-prototype-exec.html")}}
+Les objets représentant des expressions rationnelles gardent un état en mémoire lorsqu'ils utilisent les marqueurs {{jsxref("RegExp.global", "global")}} ou {{jsxref("RegExp.sticky", "sticky")}} et ils gardent notamment en mémoire {{jsxref("RegExp.lastIndex", "lastIndex")}} à partir de la correspondance précédemment trouvée. Ainsi, `exec()` peut être utilisée afin de parcourir plusieurs correspondances dans un texte (avec des groupes capturants) (contrairement à {{jsxref("String.prototype.match()")}}).
+## Syntaxe
-<p>Les objets représentant des expressions rationnelles gardent un état en mémoire lorsqu'ils utilisent les marqueurs {{jsxref("RegExp.global", "global")}} ou {{jsxref("RegExp.sticky", "sticky")}} et ils gardent notamment en mémoire {{jsxref("RegExp.lastIndex", "lastIndex")}} à partir de la correspondance précédemment trouvée. Ainsi, <code>exec()</code> peut être utilisée afin de parcourir plusieurs correspondances dans un texte (avec des groupes capturants) (contrairement à {{jsxref("String.prototype.match()")}}).</p>
+ regexObj.exec(chaîne)
-<h2 id="Syntaxe">Syntaxe</h2>
+### Paramètres
-<pre class="syntaxbox"><var>regexObj</var>.exec(<var>chaîne</var>)</pre>
+- `chaîne`
+ - : La chaîne de caractères dans laquelle on recherche la correspondance décrite par l'expression rationnelle.
-<h3 id="Paramètres">Paramètres</h3>
+### Valeur de retour
-<dl>
- <dt><code>chaîne</code></dt>
- <dd>La chaîne de caractères dans laquelle on recherche la correspondance décrite par l'expression rationnelle.</dd>
-</dl>
+S'il y a une correspondance, la méthode `exec()` renvoie un tableau (contenant des éléments et deux propriétés `index` et `values`, cf. ci-après) et met à jour les propriétés de l'objet représentant l'expression rationnelle (notamment {{jsxref("RegExp.lastIndex", "lastIndex")}}). Le tableau renvoyé contient le texte qui correspond dans le premier élément puis un élément pour chaque groupe capturé dans les parenthèses capturantes.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+S'il n'y a aucune correspondance, la méthode `exec()` renvoie {{jsxref("null")}} et la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} reçoit la valeur 0.
-<p>S'il y a une correspondance, la méthode <code>exec()</code> renvoie un tableau (contenant des éléments et deux propriétés <code>index</code> et <code>values</code>, cf. ci-après) et met à jour les propriétés de l'objet représentant l'expression rationnelle (notamment {{jsxref("RegExp.lastIndex", "lastIndex")}}). Le tableau renvoyé contient le texte qui correspond dans le premier élément puis un élément pour chaque groupe capturé dans les parenthèses capturantes.</p>
+## Description
-<p>S'il n'y a aucune correspondance, la méthode <code>exec()</code> renvoie {{jsxref("null")}} et la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} reçoit la valeur 0.</p>
+Si on a l'exemple suivant :
-<h2 id="Description">Description</h2>
-
-<p>Si on a l'exemple suivant :</p>
-
-<pre class="brush: js">// On a une correspondance si on a "quick brown" suivi par "jumps", on ignore les caractères entre
+```js
+// On a une correspondance si on a "quick brown" suivi par "jumps", on ignore les caractères entre
// On garde en mémoire "brown" et "jumps"
// On ignore la casse
var re = /quick\s(brown).+?(jumps)/ig;
var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
-</pre>
+```
-<p>Le tableau suivant montre l'état résultant suite à ce script :</p>
+Le tableau suivant montre l'état résultant suite à ce script :
<table class="fullwidth-table">
- <tbody>
- <tr>
- <td class="header">Objet</td>
- <td class="header">Propriété/Index</td>
- <td class="header">Description</td>
- <td class="header">Exemple</td>
- </tr>
- <tr>
- <td rowspan="4"><code>result</code></td>
- <td><code>[0]</code></td>
- <td>La chaîne complète des caractères qui correspondent.</td>
- <td><code>"Quick Brown Fox Jumps"</code></td>
- </tr>
- <tr>
- <td><code>[1], ...[<em>n</em> ]</code></td>
- <td>Les sous-chaînes correspondantes aux groupes capturants s'il y en a. Le nombre de groupes de parenthèses capturantes est illimité.</td>
- <td><code>result[1] === "Brown"<br>
- result[2] === "Jumps"</code></td>
- </tr>
- <tr>
- <td><code>index</code></td>
- <td>L'indice (compté à partir de 0) de la correspondance dans la chaîne.</td>
- <td><code>4</code></td>
- </tr>
- <tr>
- <td><code>input</code></td>
- <td>La chaîne de caractères utilisée en entrée.</td>
- <td><code>"The Quick Brown Fox Jumps Over The Lazy Dog"</code></td>
- </tr>
- <tr>
- <td rowspan="5"><code>re</code></td>
- <td><code>lastIndex</code></td>
- <td>L'indice à partir duquel chercher la prochaine correspondance. Lorsque le drapeau "g" est absent, cette propriété sera 0.</td>
- <td><code>25</code></td>
- </tr>
- <tr>
- <td><code>ignoreCase</code></td>
- <td>Indique si le drapeau "<code>i</code>" a été utilisé pour ignorer la casse.</td>
- <td><code>true</code></td>
- </tr>
- <tr>
- <td><code>global</code></td>
- <td>Indique si le drapeau "<code>g</code>" a été utilisé pour la correspondance globale.</td>
- <td><code>true</code></td>
- </tr>
- <tr>
- <td><code>multiline</code></td>
- <td>Indique si le drapeau "<code>m</code>" a été utilisé pour chercher une correspondance sur plusieurs lignes.</td>
- <td><code>false</code></td>
- </tr>
- <tr>
- <td><code>source</code></td>
- <td>Le texte du motif.</td>
- <td><code>"quick\s(brown).+?(jumps)"</code></td>
- </tr>
- </tbody>
+ <tbody>
+ <tr>
+ <td class="header">Objet</td>
+ <td class="header">Propriété/Index</td>
+ <td class="header">Description</td>
+ <td class="header">Exemple</td>
+ </tr>
+ <tr>
+ <td rowspan="4"><code>result</code></td>
+ <td><code>[0]</code></td>
+ <td>La chaîne complète des caractères qui correspondent.</td>
+ <td><code>"Quick Brown Fox Jumps"</code></td>
+ </tr>
+ <tr>
+ <td>
+ <code>[1], ...[<em>n</em> ]</code>
+ </td>
+ <td>
+ Les sous-chaînes correspondantes aux groupes capturants s'il y en a. Le
+ nombre de groupes de parenthèses capturantes est illimité.
+ </td>
+ <td>
+ <code>result[1] === "Brown"<br />result[2] === "Jumps"</code>
+ </td>
+ </tr>
+ <tr>
+ <td><code>index</code></td>
+ <td>
+ L'indice (compté à partir de 0) de la correspondance dans la chaîne.
+ </td>
+ <td><code>4</code></td>
+ </tr>
+ <tr>
+ <td><code>input</code></td>
+ <td>La chaîne de caractères utilisée en entrée.</td>
+ <td><code>"The Quick Brown Fox Jumps Over The Lazy Dog"</code></td>
+ </tr>
+ <tr>
+ <td rowspan="5"><code>re</code></td>
+ <td><code>lastIndex</code></td>
+ <td>
+ L'indice à partir duquel chercher la prochaine correspondance. Lorsque
+ le drapeau "g" est absent, cette propriété sera 0.
+ </td>
+ <td><code>25</code></td>
+ </tr>
+ <tr>
+ <td><code>ignoreCase</code></td>
+ <td>
+ Indique si le drapeau "<code>i</code>" a été utilisé pour ignorer la
+ casse.
+ </td>
+ <td><code>true</code></td>
+ </tr>
+ <tr>
+ <td><code>global</code></td>
+ <td>
+ Indique si le drapeau "<code>g</code>" a été utilisé pour la
+ correspondance globale.
+ </td>
+ <td><code>true</code></td>
+ </tr>
+ <tr>
+ <td><code>multiline</code></td>
+ <td>
+ Indique si le drapeau "<code>m</code>" a été utilisé pour chercher une
+ correspondance sur plusieurs lignes.
+ </td>
+ <td><code>false</code></td>
+ </tr>
+ <tr>
+ <td><code>source</code></td>
+ <td>Le texte du motif.</td>
+ <td><code>"quick\s(brown).+?(jumps)"</code></td>
+ </tr>
+ </tbody>
</table>
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<h3 id="Trouver_des_correspondances_successives">Trouver des correspondances successives</h3>
+### Trouver des correspondances successives
-<p>Si on utilise le drapeau "<code>g</code>" dans l'expression rationnelle, on peut utiliser la méthode <code>exec()</code> plusieurs fois afin de trouver les correspondances successives dans la chaîne. Lorsqu'on procède ainsi, la recherche reprend à la position indiquée par la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ({{jsxref("RegExp.prototype.test()", "test()")}} fera également progresser la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}}).</p>
+Si on utilise le drapeau "`g`" dans l'expression rationnelle, on peut utiliser la méthode `exec()` plusieurs fois afin de trouver les correspondances successives dans la chaîne. Lorsqu'on procède ainsi, la recherche reprend à la position indiquée par la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ({{jsxref("RegExp.prototype.test()", "test()")}} fera également progresser la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}}).
-<p>On notera que la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ne sera pas réinitialisée lors de la recherche sur une autre chaîne de caractères, c'est la valeur existante de {{jsxref("RegExp.lastIndex", "lastIndex")}} qui sera utilisée.</p>
+On notera que la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} ne sera pas réinitialisée lors de la recherche sur une autre chaîne de caractères, c'est la valeur existante de {{jsxref("RegExp.lastIndex", "lastIndex")}} qui sera utilisée.
-<p>Par exemple, si on utilise le fragment de code suivant :</p>
+Par exemple, si on utilise le fragment de code suivant :
-<pre class="brush: js">var maRegex = /ab*/g;
+```js
+var maRegex = /ab*/g;
var str = 'abbcdefabh';
var monTableau;
while ((monTableau = maRegex.exec(str)) !== null) {
@@ -129,71 +147,42 @@ while ((monTableau = maRegex.exec(str)) !== null) {
msg += 'Prochaine correspondance à partir de ' + maRegex.lastIndex;
console.log(msg);
}
-</pre>
+```
-<p>Le script affichera alors :</p>
+Le script affichera alors :
-<pre>Trouvé abb. Prochaine correspondance à partir de 3
-Trouvé ab. Prochaine correspondance à partir de 9
-</pre>
+ Trouvé abb. Prochaine correspondance à partir de 3
+ Trouvé ab. Prochaine correspondance à partir de 9
-<div class="warning">
-<p><strong>Attention :</strong> Il ne faut pas placer un littéral d'expression rationnelle (ou le constructeur {{jsxref("RegExp")}}) au sein de la condition <code>while</code> car cela créerait un boucle infinie s'il y a une correspondance car la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} serait redéfinie à chaque itération. Il faut également s'assurer que le drapeau global est défini sinon on aura également une boucle.</p>
-</div>
+> **Attention :** Il ne faut pas placer un littéral d'expression rationnelle (ou le constructeur {{jsxref("RegExp")}}) au sein de la condition `while` car cela créerait un boucle infinie s'il y a une correspondance car la propriété {{jsxref("RegExp.lastIndex", "lastIndex")}} serait redéfinie à chaque itération. Il faut également s'assurer que le drapeau global est défini sinon on aura également une boucle.
-<h3 id="Utiliser_exec()_avec_des_littéraux">Utiliser <code>exec()</code> avec des littéraux</h3>
+### Utiliser `exec()` avec des littéraux
-<p>Il est aussi possible d'utiliser <code>exec()</code> sans créer d'objet {{jsxref("RegExp")}} explicite :</p>
+Il est aussi possible d'utiliser `exec()` sans créer d'objet {{jsxref("RegExp")}} explicite :
-<pre class="brush: js">var matches = /(coucou \S+)/.exec('Ceci est un coucou monde !');
+```js
+var matches = /(coucou \S+)/.exec('Ceci est un coucou monde !');
console.log(matches[1]);
-</pre>
-
-<p>Cela affichera 'coucou monde !'.</p>
-
-<h2 id="Spécifications">Spécifications</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Spécification</th>
- <th scope="col">État</th>
- <th scope="col">Commentaires</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ES3')}}</td>
- <td>{{Spec2('ES3')}}</td>
- <td>Définition initiale. Implémentée avec JavaScript 1.2.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}}</td>
- <td>{{Spec2('ES5.1')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}}</td>
- <td>{{Spec2('ES6')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
+```
+
+Cela affichera 'coucou monde !'.
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- |
+| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. Implémentée avec JavaScript 1.2. |
+| {{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}} | {{Spec2('ES5.1')}} | |
+| {{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}} | {{Spec2('ES6')}} | |
+| {{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}} | {{Spec2('ESDraft')}} | |
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+## Compatibilité des navigateurs
-<p>{{Compat("javascript.builtins.RegExp.exec")}}</p>
+{{Compat("javascript.builtins.RegExp.exec")}}
-<h2 id="Voir_aussi">Voir aussi</h2>
+## Voir aussi
-<ul>
- <li>Le chapitre sur <a href="/fr/docs/Web/JavaScript/Guide/Expressions_régulières">les expressions rationnelles</a> du <a href="/fr/docs/Web/JavaScript/Guide">Guide JavaScript</a></li>
- <li>{{jsxref("RegExp")}}</li>
- <li>{{jsxref("String.prototype.match()")}}</li>
- <li>{{jsxref("String.prototype.matchAll()")}}</li>
-</ul>
+- Le chapitre sur [les expressions rationnelles](/fr/docs/Web/JavaScript/Guide/Expressions_régulières) du [Guide JavaScript](/fr/docs/Web/JavaScript/Guide)
+- {{jsxref("RegExp")}}
+- {{jsxref("String.prototype.match()")}}
+- {{jsxref("String.prototype.matchAll()")}}