Classes de caractères
=====================

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
-----

| Caractères | Signification |
| --- | --- |
| `.` | 
 Par défaut, (Le point) correspond à n'importe quel caractère excepté
 un caractère de saut de ligne.


 Ainsi, `/.n/` correspond à 'un' et 'en' dans "Un baobab
 nain en cours de croissance" mais pas à 'nain'.


 Si le marqueur `s` (*dotAll*) est utilisé, le point
 correspondra également aux caractères de saut de ligne.

Le marqueur `m` ne modifie pas le comportement du point.

 Attention, si on utilise le point dans
 un intervalle de caractères, il n'aura plus cette signification spéciale.
  |
| `\d` | Correspond à un chiffre et est équivalent à `[0-9]`.

 Ainsi, `/\d/` ou `/[0-9]/` correspond à '2' dans
 "H2O est la molécule de l'eau".
  |
| `\D` | 
 Correspond à tout caractère qui n'est pas un chiffre et est équivalent
 à `[^0-9]`.


 Ainsi, `/\D/` ou `/[^0-9]/` correspond à 'H'
 dans "H2O est la molécule de l'eau".
  |
| `\w` | 
 Correspond à n'importe quel caractère alphanumérique de l'alphabet
 latin, y compris le tiret bas. C'est équivalent à
 `[A-Za-z0-9_]`.


 Ainsi, `/\w/` correspond à 'l' dans "licorne", à '5' dans
 "5,28€", et à '3' dans "3D."
  |
| `\W` | 
 Correspond à n'importe quel caractère n'étant pas un caractère de
 l'alphabet latin ou le tiret bas. Cela est équivalent à
 `[^A-Za-z0-9_]`.


 Ainsi, `/\W/` ou `/[^A-Za-z0-9_]/` correspond à
 '%' dans "50%."
  |
| `\s` | 
 Correspond à un blanc (cela comprend les espace, tabulation, saut de
 ligne ou saut de page). C'est équivalent à
 `[
\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`.

Ainsi, `/\s\w*/` correspond à ' toto' dans "truc toto". |
| `\S` | 
 Correspond à un caractère qui n'est pas un blanc. C'est équivalent à
 `[^
\f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`.

Ainsi, `/\S\w*/` correspond à 'truc' dans "truc toto". |
| `\t` | Correspond à une tabulation (U+0009). |
| `\r` | Correspond à un retour chariot (U+000D). |
| `\n` | Correspond à un saut de ligne (U+000A). |
| `\v` | Correspond à une tabulation verticale (U+000B). |
| `\f` | Correspond à un saut de page (U+000C). |
| `[\b]` | 
 Correspond pour un retour arrière (U+0008). (À ne pas confondre avec
 `\b`, voir
 les limites).
  |
| `\0` | 
 Correspond au caractère NULL (U+0000). Il ne doit pas être suivi d'un
 autre chiffre car `\0<chiffres>` est une
 séquence d'échappement
 pour les nombres en notation octale (si besoin d'utiliser un chiffre
 ensuite, on pourra utiliser la forme `\x00`, cf. ci-après).
  |
| `\cX` | 
 Correspond au caractère de contrôle où `*X*` est une
 lettre entre A et Z. Correspond au caractèlres de contrôle
 correspondant entre `U+0001`-`U+001F`. Ainsi,
 `/\cM/` correspondra au caractère controle-M au sein d'une
 chaîne de caractères soit `"\r"` pour `"\r\n"`.
  |
| `\xhh` | 
 Correspond au caractère dont le code hexadécimal est hh (deux chiffres
 hexadécimaux).
  |
| `\uhhhh` | 
 Correspond au caractère dont le code est hhhh (quatre chiffres
 hexadécimaux).
  |
| `\u{hhhh}` ou `\u{hhhhh}` | 
 (Uniquement actif quand le marqueur `u` est activé)
 Correspond au caractère dont la valeur Unicode est `hhhh` (en
 chiffre hexadécimaux).
  |
| `\` | 
 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
 :
 * 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, `/b/` correspondra à la
 lettre "b" mais en utilisant la barre oblique inversée devant
 `/\b/`, on cherchera une limite de mot.
* 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) : `/a*/` cherchera une
 correspondance avec 0 ou plusieurs "a". Si on souhaite trouver le
 caractère `*` dans une chaîne, on placera la barre
 oblique inversée devant : on a ainsi `/a\*/` qui permet
 de trouver "a\*" dans une chaîne.

**Note :** L'échappement vaut également avec la barre
 oblique inversée. Autrement dit, si on cherche la présence de
 `\` dans une chaîne, on pourra utiliser l'expression
 `/\\/` (où la première barre oblique échape la seconde).

 |

Spécifications
--------------

{{Specifications}}Compatibilité des navigateurs
-----------------------------

{{Compat}}Voir aussi
----------

* `RegExp`