diff options
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md')
-rw-r--r-- | files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md | 89 |
1 files changed, 35 insertions, 54 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md b/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md index ab261c0d51..eb5c5a2b52 100644 --- a/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md +++ b/files/fr/web/javascript/reference/global_objects/regexp/sticky/index.md @@ -12,27 +12,24 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/sticky original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/sticky --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>La propriété <code><strong>sticky</strong></code> (adhérante) permet de déterminer si la recherche s'effectue uniquement à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} lié à l'expression rationnelle ou non). <code>sticky</code> est une propriété accessible en lecture seule, rattachée à l'instance.</p> +La propriété **`sticky`** (adhérante) permet de déterminer si la recherche s'effectue uniquement à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} lié à l'expression rationnelle ou non). `sticky` est une propriété accessible en lecture seule, rattachée à l'instance. -<div>{{EmbedInteractiveExample("pages/js/regexp-prototype-sticky.html")}}</div> +{{EmbedInteractiveExample("pages/js/regexp-prototype-sticky.html")}}{{js_property_attributes(0,0,1)}} +## Description +La propriété `sticky` est un booléen qui vaut `true` si le marqueur (_flag_) "`y`" a été utilisé, `false` sinon. Ce marqueur indique que les correspondances ne sont recherchées qu'à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} au niveau de la chaîne de caractères (les correspondances à partir des autres positions ne seront pas trouvées). Lorsqu'une expression rationnelle qui utilise le marqueur `sticky` **et** le marqueur `global` ignorera le marqueur `global`. -<div>{{js_property_attributes(0,0,1)}}</div> +La propriété `sticky` ne peut pas être modifiée directement. Elle est uniquement en lecture seule. -<h2 id="Description">Description</h2> +## Exemples -<p>La propriété <code>sticky</code> est un booléen qui vaut <code>true</code> si le marqueur (<em>flag</em>) "<code>y</code>" a été utilisé, <code>false</code> sinon. Ce marqueur indique que les correspondances ne sont recherchées qu'à partir de l'indice {{jsxref("RegExp.lastIndex", "lastIndex")}} au niveau de la chaîne de caractères (les correspondances à partir des autres positions ne seront pas trouvées). Lorsqu'une expression rationnelle qui utilise le marqueur <code>sticky</code> <strong>et</strong> le marqueur <code>global</code> ignorera le marqueur <code>global</code>.</p> +### Utiliser une expression rationnelle avec le _flag_ _sticky_ -<p>La propriété <code>sticky</code> ne peut pas être modifiée directement. Elle est uniquement en lecture seule.</p> - -<h2 id="Exemples">Exemples</h2> - -<h3 id="Utiliser_une_expression_rationnelle_avec_le_flag_sticky">Utiliser une expression rationnelle avec le <em>flag</em> <em>sticky</em></h3> - -<pre class="brush: js">var str = '#toto#'; +```js +var str = '#toto#'; var regex = /toto/y; regex.lastIndex = 1; @@ -40,13 +37,14 @@ regex.test(str); // true regex.lastIndex = 5; regex.test(str); // false (lastIndex est pris en compte avec sticky) regex.lastIndex; // 0 (on rénitialise après un échec) -</pre> +``` -<h3 id="Marqueur_d'adhérence_«_ancré_»">Marqueur d'adhérence « ancré »</h3> +### Marqueur d'adhérence « ancré » -<p>Pendant plusieurs versions, le moteur JavaScript de Firefox, SpiderMonkey, avait un bug qui entraînait des correspondances invalides lorsqu'étaient utilisés le marqueur d'adhérence et le symbole <code>^</code> dans l'expression rationnelle. Ce bug est apparu peu après Firefox 3.6. Afin d'éviter ce bug, la spécification ES2015 indique spécifiquement que, lorsque le marqueur <code>y</code> est utilisé avec un motif commençant par <code>^</code>, ce dernier doit correspondre au début de la chaine (ou, si <code>multiline</code> vaut <code>true</code>, au début de la ligne). Les exemples qui suivent illustrent le comportement correct :</p> +Pendant plusieurs versions, le moteur JavaScript de Firefox, SpiderMonkey, avait un bug qui entraînait des correspondances invalides lorsqu'étaient utilisés le marqueur d'adhérence et le symbole `^` dans l'expression rationnelle. Ce bug est apparu peu après Firefox 3.6. Afin d'éviter ce bug, la spécification ES2015 indique spécifiquement que, lorsque le marqueur `y` est utilisé avec un motif commençant par `^`, ce dernier doit correspondre au début de la chaine (ou, si `multiline` vaut `true`, au début de la ligne). Les exemples qui suivent illustrent le comportement correct : -<pre class="brush: js">var regex = /^foo/y; +```js +var regex = /^foo/y; regex.lastIndex = 2; // désactive la correspondance au début regex.test("..foo"); // false @@ -55,40 +53,23 @@ regex2.lastIndex = 2; regex2.test("..foo"); // false regex2.lastIndex = 2; regex2.test(".\nfoo"); // true -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">Etat</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.RegExp.sticky")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("RegExp.prototype.global")}}</li> - <li>{{jsxref("RegExp.prototype.ignoreCase")}}</li> - <li>{{jsxref("RegExp.prototype.lastIndex")}}</li> - <li>{{jsxref("RegExp.prototype.multiline")}}</li> - <li>{{jsxref("RegExp.prototype.source")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | Etat | Commentaires | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ESDraft', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.RegExp.sticky")}} + +## Voir aussi + +- {{jsxref("RegExp.prototype.global")}} +- {{jsxref("RegExp.prototype.ignoreCase")}} +- {{jsxref("RegExp.prototype.lastIndex")}} +- {{jsxref("RegExp.prototype.multiline")}} +- {{jsxref("RegExp.prototype.source")}} |