aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/guide/regular_expressions/character_classes/index.html
blob: ce2d02b78985ccb7707ed6d78646cbeb84cf561b (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
---
title: Classes de caractères
slug: Web/JavaScript/Guide/Expressions_régulières/Classes_de_caractères
tags:
  - Classes
  - Guide
  - JavaScript
  - RegExp
translation_of: Web/JavaScript/Guide/Regular_Expressions/Character_Classes
---
<p>{{jsSidebar("JavaScript Guide")}}{{draft}}</p>

<p>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).</p>

<h2 id="Types">Types</h2>

<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&lt;chiffres&gt;</code> est une <a href="/fr/docs/Web/JavaScript/Guide/Types_et_grammaire#Les_caractères_d'é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>\c<em>X</em></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>\x<em>hh</em></code></td>
   <td>Correspond au caractère dont le code hexadécimal est hh (deux chiffres hexadécimaux).</td>
  </tr>
  <tr>
   <td><code>\u<em>hhhh</em></code></td>
   <td>Correspond au caractère dont le code est hhhh (quatre chiffres hexadécimaux).</td>
  </tr>
  <tr>
   <td><code>\u<em>{hhhh}</em></code><em> </em>ou<code> <em>\u{hhhhh}</em></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>

<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.1.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>

<div class="hidden">Le tableau de compatibilité de cette page a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à consulter <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> et à nous envoyer une <em>pull request</em>.</div>

<p>{{Compat("javascript.builtins.RegExp.property_escapes")}}</p>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li>{{JSxRef("RegExp")}}</li>
</ul>