diff options
Diffstat (limited to 'files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html')
-rw-r--r-- | files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html b/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html new file mode 100644 index 0000000000..f56d56a399 --- /dev/null +++ b/files/fr/conflicting/web/javascript/guide/regular_expressions/assertions/index.html @@ -0,0 +1,96 @@ +--- +title: Limites +slug: Web/JavaScript/Guide/Expressions_régulières/Limites +tags: + - Guide + - JavaScript + - Limites + - RegExp +translation_of: Web/JavaScript/Guide/Regular_Expressions/Assertions +translation_of_original: Web/JavaScript/Guide/Regular_Expressions/Boundaries +--- +<p>{{jsSidebar("JavaScript Guide")}}{{draft}}</p> + +<p>Les limites permettent d'indiquer les débuts et fins des lignes et des mots.</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> + <tr> + <td><code>^</code></td> + <td> + <p>Correspond au début la séquence. Si le marqueur (<em>flag</em>) de lignes multiples vaut <code>true</code>, il correspondra également immédiatement après un caractère de saut de ligne.<br> + <br> + Ainsi, <code>/^A/</code> ne correspond pas au 'A' de "un A", mais correspond au 'A' de "Arceau".<br> + <br> + Le caractère '<code>^</code>' possède un sens différent lorsqu'il est utilisé dans un motif d'ensemble de caractères. Voir les <a href="#special-negated-character-set">compléments sur les ensembles de caractères </a>pour plus de détails et d'exemples.</p> + </td> + </tr> + <tr> + <td><code>$</code></td> + <td> + <p>Correspond à la fin de la séquence. Si le marqueur (<em>flag</em>) de lignes multiples vaut true, il correspondra également immédiatement avant un caractère de saut de ligne.</p> + + <p>Ainsi, <code>/t$/</code> ne correspond pas au 't' de "printemps", mais correspond au 't' de "aliment".</p> + </td> + </tr> + <tr> + <td><code>\b</code></td> + <td> + <p>Correspond à la position d'uneAfter the <em>limite de mot</em>. Une limite de mot correspond à la position où un caractère d'un mot n'est pas suivi ou précédé d'un autre caractère de mot. Il faut savoir que la limite correspondante n'est pas incluse dans le résultat. Autrement dit, la longueur d'une telle correspondance est nulle. (À ne pas confondre avec <code>[\b]</code>.)</p> + + <p>Exemples :<br> + <code>/\bm/</code> correspond au 'm' dans "mignon" ;<br> + <code>/no\b/</code> ne correspond pas au 'no' de "mignon" car 'no' est suivi de 'n' qui n'est pas un caractère de limite de mot;<br> + <code>/non\b/</code> correspond au 'non' de "mignon" car 'non' représente la fin de la chaîne de caractère et n'est donc pas suivi par un caractère de mot.<br> + <code>/\w\b\w/</code> ne correspondra jamais à quoi que ce soit car un caractère de mot ne peut pas être suivi à la fois par un caractère de mot et un caractère n'étant pas un caractère de mot.</p> + + <div class="note"> + <p><strong>Note :</strong> Le moteur d'expressions rationnelles JavaScript définit <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-15.10.2.6">un ensemble de caractères spécifiques</a> qui doivent être considérés comme des caractères de mot. Tout caractère qui n'est pas dans cet ensemble est considéré comme une limite de mot. Cet ensemble de caractères est relativement limité car constitué uniquement des caractères de l'alphabet romain en minuscules et en majuscules, des chiffres décimaux et du tiret-bas (<em>underscore</em>). Les autres caractères, comme les caractères accentués (é ou ü par exemple), sont donc considérés comme des limites de mots.</p> + </div> + </td> + </tr> + <tr> + <td><code>\B</code></td> + <td> + <p>Correspond à une "non-<em>limite de mot</em>". Cela correspond pour les cas suivants :</p> + + <ul> + <li>Avant le premier caractère d'une chaîne de caractères</li> + <li>Après le dernier caractère d'une chaîne de caractères</li> + <li>Entre deux caractères de mot</li> + <li>Entre deux caractères qui ne sont pas des caractères de mot</li> + <li>Avec la chaîne vide.</li> + </ul> + + <p>Ainsi, <code>/\B../</code> correspond au 'oo' de "football" (et <code>/e\B./</code> correspond au 'er' dans "une mer "</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Cibler_le_début_d'un_champ_grâce_au_caractère_de_contrôle">Cibler le début d'un champ grâce au caractère de contrôle <code>^</code></h3> + +<p>On utilisera le caractère spécial <code>^</code> afin de cibler le début d'un mot. Dans cet exemple, on filtre les fruits qui commencent par A grâce à l'expression rationnelle <code> /^A/</code>.</p> + +<pre class="brush: js">let fruits = ["Ananas", "Melon", "Orange", "Abricot", "Pomme"]; + +let fruitsDebutantParA = fruits.filter(fruit => /^A/.test(fruit)); +console.table(fruitsDebutantsParA); // [ 'Ananas', 'Abricot' ]</pre> + +<p>Dans ce deuxième exemple, on utilise <code>^</code> à la fois pour indiquer le début du mot et pour indiquer un groupe complémentaire pour ne sélectionner que les fruits dont le nom ne commence pas par A.</p> + +<pre class="brush: js">let fruits = ["Ananas", "Melon", "Orange", "Abricot", "Pomme"]; + +let fruitsNeDebutantPasParA = fruits.filter(fruit => /^[^A]/.test(fruit)); +console.table(fruitsNeDebutantPasParA); // [ 'Melon', 'Orange', 'Pomme' ]] +</pre> |