--- 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<chiffres></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>\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")}}