aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/global_objects/regexp/lastindex/index.md
blob: 4693bdfb7a31797d54a06c59703715290a43519c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
title: regExp.lastIndex
slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex
tags:
  - JavaScript
  - Propriété
  - Reference
  - RegExp
translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex
original_slug: Web/JavaScript/Reference/Objets_globaux/RegExp/lastIndex
---
{{JSRef}}

La propriété **`lastIndex`** est un entier en lecture/écriture qui permet de définir l'indice (position) à partir duquel chercher la prochaine correspondance pour une instance d'expression rationnelle donnée.

{{EmbedInteractiveExample("pages/js/regexp-lastindex.html")}}{{js_property_attributes(1,0,0)}}

## Syntaxe

    regExpObj.lastIndex

## Description

Cette propriété n'est définie que si l'instance d'expression rationnelle utilise le marqueur (_flag_) `"g"` pour effectuer une recherche globale ou le marqueur `"y"` afin d'effectuer une recherche adhérente. Les règles suivantes s'appliquent :

- Si `lastIndex` est supérieur à la longueur de la chaîne de caractères, `regexp.test` et `regexp.exec` échoueront et `lastIndex` sera redéfini à 0.
- Si `lastIndex` est égal à la longueur de la chaîne de caractères et si l'expression rationnelle correspond avec la chaîne vide, il y aura une correspondance à partir de `lastIndex`.
- Si `lastIndex` est égal à la longueur de la chaîne de caractères et que l'expression rationnelle ne peut correspondre à la chaîne vide, on n'aura pas de correspondance et `lastIndex` sera réinitialisé à 0.
- Sinon, `lastIndex` sera défini à la position suivant la correspondance la plus récente.

## Exemples

Si on a la séquence d'instructions suivante :

```js
var re = /(hi)?/g;
```

Correspond à la chaîne vide.

```js
console.log(re.exec('hi'));
console.log(re.lastIndex);
```

Renvoie `["hi", "hi"]` avec `lastIndex` égal à 2.

```js
console.log(re.exec('hi'));
console.log(re.lastIndex);
```

Renvoie `["", undefined]`, un tableau dont le premier élément est la chaîne vide car `lastIndex` valait 2 (et vaut toujours 2) et `"hi"` était de longueur 2.

## Spécifications

| Spécification                                                                                                | Statut                       | Commentaires                                                                                                                                   |
| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| {{SpecName('ES3')}}                                                                                     | {{Spec2('ES3')}}         | Définition initiale. JavaScript 1.5 : `lastIndex` est une propriété d'une instance de `RegExp` et n'est pas une propriété directe de `RegExp`. |
| {{SpecName('ES5.1', '#sec-15.10.7.5', 'RegExp.lastIndex')}}                             | {{Spec2('ES5.1')}}     |                                                                                                                                                |
| {{SpecName('ES6', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}     | {{Spec2('ES6')}}         |                                                                                                                                                |
| {{SpecName('ESDraft', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}} | {{Spec2('ESDraft')}} |                                                                                                                                                |

## Compatibilité des navigateurs

{{Compat("javascript.builtins.RegExp.lastIndex")}}

## Voir aussi

- {{jsxref("RegExp.prototype.ignoreCase")}}
- {{jsxref("RegExp.prototype.global")}}
- {{jsxref("RegExp.prototype.multiline")}}
- {{jsxref("RegExp.prototype.source")}}
- {{jsxref("RegExp.prototype.sticky")}}