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