aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/guide/regular_expressions/character_classes/index.md
blob: 1d37d5b70dab801ed2b128c1734bbe43910aaa24 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
---
title: Classes de caractères
slug: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
tags:
  - Classes
  - Guide
  - JavaScript
  - RegExp
translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
original_slug: Web/JavaScript/Guide/Expressions_régulières/Classes_de_caractères
---
{{jsSidebar("JavaScript Guide")}}{{draft}}

Les classes de caractères permettent de distinguer différents ensembles de caractères dans les expressions rationnelles (par exemple les chiffres d'une part et les lettres d'autre part).

## Types

<table class="standard-table">
  <thead>
    <tr>
      <th scope="col">Caractères</th>
      <th scope="col">Signification</th>
    </tr>
  </thead>
  <tbody></tbody>
  <tbody>
    <tr>
      <td><code>.</code></td>
      <td>
        <p>
          Par défaut, (Le point) correspond à n'importe quel caractère excepté
          un caractère de saut de ligne.
        </p>
        <p>
          Ainsi, <code>/.n/</code> correspond à  'un' et 'en' dans "Un baobab
          nain en cours de  croissance" mais pas à 'nain'.
        </p>
        <p>
          Si le marqueur <code>s</code> (<em>dotAll</em>) est utilisé, le point
          correspondra également aux caractères de saut de ligne.
        </p>
        <p>
          Le marqueur <code>m</code> ne modifie pas le comportement du point.
        </p>
        <p>
          Attention, si on utilise le point dans
          <a
            href="/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Groupes_et_intervalles"
            >un intervalle de caractères</a
          >, il n'aura plus cette signification spéciale.
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\d</code></td>
      <td>
        <p>Correspond à un chiffre et est équivalent à <code>[0-9]</code>.</p>
        <p>
          Ainsi, <code>/\d/</code> ou <code>/[0-9]/</code> correspond à '2' dans
          "H2O est la molécule de l'eau".
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\D</code></td>
      <td>
        <p>
          Correspond à tout caractère qui n'est pas un chiffre et est équivalent
          à<code> [^0-9]</code>.
        </p>
        <p>
          Ainsi, <code>/\D/</code> ou <code>/[^0-9]/</code> correspond à 'H'
          dans "H2O est la molécule de l'eau".
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\w</code></td>
      <td>
        <p>
          Correspond à n'importe quel caractère alphanumérique de l'alphabet
          latin, y compris le tiret bas. C'est équivalent à
          <code>[A-Za-z0-9_]</code>.
        </p>
        <p>
          Ainsi, <code>/\w/</code> correspond à 'l' dans "licorne", à '5' dans
          "5,28€", et à '3' dans "3D."
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\W</code></td>
      <td>
        <p>
          Correspond à n'importe quel caractère n'étant pas un caractère de
          l'alphabet latin ou le tiret bas. Cela est équivalent à
          <code>[^A-Za-z0-9_]</code>.
        </p>
        <p>
          Ainsi, <code>/\W/</code> ou <code>/[^A-Za-z0-9_]/</code> correspond à
          '%' dans "50%."
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\s</code></td>
      <td>
        <p>
          Correspond à un blanc (cela comprend les espace, tabulation, saut de
          ligne ou saut de page). C'est équivalent à
          <code
            >[
            \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code
          >.
        </p>
        <p>
          Ainsi, <code>/\s\w*/</code> correspond à ' toto' dans "truc toto".
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\S</code></td>
      <td>
        <p>
          Correspond à un caractère qui n'est pas un blanc. C'est équivalent à
          <code
            >[^
            \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]</code
          >.
        </p>
        <p>Ainsi, <code>/\S\w*/</code> correspond à 'truc' dans "truc toto".</p>
      </td>
    </tr>
    <tr>
      <td><code>\t</code></td>
      <td>Correspond à une tabulation (U+0009).</td>
    </tr>
    <tr>
      <td><code>\r</code></td>
      <td>Correspond à un retour chariot (U+000D).</td>
    </tr>
    <tr>
      <td><code>\n</code></td>
      <td>Correspond à un saut de ligne (U+000A).</td>
    </tr>
    <tr>
      <td><code>\v</code></td>
      <td>Correspond à une tabulation verticale (U+000B).</td>
    </tr>
    <tr>
      <td><code>\f</code></td>
      <td>Correspond à un saut de page (U+000C).</td>
    </tr>
    <tr>
      <td><code>[\b]</code></td>
      <td>
        Correspond pour un retour arrière (U+0008). (À ne pas confondre avec
        <code>\b</code>, voir
        <a href="/fr/docs/Web/JavaScript/Guide/Expressions_régulières/Limites"
          >les limites</a
        >).
      </td>
    </tr>
    <tr>
      <td><code>\0</code></td>
      <td>
        Correspond au caractère NULL (U+0000). Il ne doit pas être suivi d'un
        autre chiffre car <code>\0&#x3C;chiffres></code> est une
        <a
          href="/fr/docs/Web/JavaScript/Guide/Types_et_grammaire#Les_caractères_d&#x27;échappement"
          >séquence d'échappement</a
        >
        pour les nombres en notation octale (si besoin d'utiliser un chiffre
        ensuite, on pourra utiliser la forme <code>\x00</code>, cf. ci-après).
      </td>
    </tr>
    <tr>
      <td><code>\cX</code></td>
      <td>
        <p>
          Correspond au caractère de contrôle où <code><em>X</em></code> est une
          lettre entre A et Z. Correspond au caractèlres de contrôle
          correspondant entre <code>U+0001</code>-<code>U+001F</code>. Ainsi,
          <code>/\cM/</code> correspondra au caractère controle-M au sein d'une
          chaîne de caractères soit <code>"\r"</code> pour <code>"\r\n"</code>.
        </p>
      </td>
    </tr>
    <tr>
      <td><code>\xhh</code></td>
      <td>
        Correspond au caractère dont le code hexadécimal est hh (deux chiffres
        hexadécimaux).
      </td>
    </tr>
    <tr>
      <td><code>\uhhhh</code></td>
      <td>
        Correspond au caractère dont le code est hhhh (quatre chiffres
        hexadécimaux).
      </td>
    </tr>
    <tr>
      <td><code>\u{hhhh}</code> ou <code>\u{hhhhh}</code></td>
      <td>
        (Uniquement actif quand le marqueur <code>u</code> est activé)
        Correspond au caractère dont la valeur Unicode est <code>hhhh</code> (en
        chiffre hexadécimaux).
      </td>
    </tr>
    <tr>
      <td><code>\</code></td>
      <td>
        <p>
          La barre oblique inversée indique que le prochain caractère doit être
          traité spécifiquement ou échappé. Elle se comporte d'une de ces façons
          :
        </p>
        <ul>
          <li>
            Pour les caractères normalement traités littéralement, cela indique
            que le prochain caractère est spécial et qu'il ne doit pas être
            interprété littéralement. Ainsi, <code>/b/</code> correspondra à la
            lettre "b" mais en utilisant la barre oblique inversée devant
            <code>/\b/</code>, on cherchera une limite de mot.
          </li>
          <li>
            Pour les caractères spéciaux, la barre indique que le caractère doit
            être interprété littéralement. Ainsi, "*" est un caractère spécial
            (un quantificateur qui signifie que le caractère précédent doit être
            présent 0 ou plusieurs fois) : <code>/a*/</code> cherchera une
            correspondance avec 0 ou plusieurs "a". Si on souhaite trouver le
            caractère <code>*</code> dans une chaîne, on placera la barre
            oblique inversée devant : on a ainsi <code>/a\*/</code> qui permet
            de trouver "a*" dans une chaîne.
          </li>
        </ul>
        <div class="blockIndicator note">
          <p>
            <strong>Note :</strong> L'échappement vaut également avec la barre
            oblique inversée. Autrement dit, si on cherche la présence de
            <code>\</code> dans une chaîne, on pourra utiliser l'expression
            <code>/\\/</code> (où la première barre oblique échape la seconde).
          </p>
        </div>
      </td>
    </tr>
  </tbody>
</table>

## Spécifications

| Spécification            | État                 | Commentaires                                          |
| ------------------------ | -------------------- | ----------------------------------------------------- |
| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Définition initiale. Implémentée avec JavaScript 1.1. |

## Compatibilité des navigateurs

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

## Voir aussi

- {{JSxRef("RegExp")}}