Assertion de limite de mot : \b, \B
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Une assertion de limite de mot (word boundary assertion en anglais) vérifie si la position actuelle dans la chaîne de caractères est une limite de mot. Une limite de mot se situe là où le caractère suivant est un caractère de mot et le caractère précédent ne l'est pas, ou inversement.
Syntaxe
\b
\B
Description
\b vérifie que la position actuelle dans la chaîne de caractères est une limite de mot. \B nie l'assertion : elle vérifie que la position actuelle n'est pas une limite de mot. Les deux sont des assertions, donc contrairement à d'autres échappements de caractères ou échappements de classes de caractères, \b et \B ne consomment aucun caractère.
Un caractère de mot inclut les éléments suivants :
- Les lettres (A-Z, a-z), les chiffres (0-9) et le caractère de soulignement (_).
- Si l'expression rationnelle est sensible à l'Unicode et que le drapeau
iest défini, d'autres caractères Unicode qui sont canoniquement transformés en l'un des caractères ci-dessus par la normalisation de casse (angl.).
Les caractères de mot sont également reconnus par l'échappement de classe de caractères \w.
Les positions d'entrée hors limites sont considérées comme des caractères non-mots. Par exemple, les correspondances suivantes réussissent :
/\ba/.exec("abc");
/c\b/.exec("abc");
/\B /.exec(" abc");
/ \B/.exec("abc ");
Exemples
>Détecter des mots
L'exemple suivant détecte si une chaîne de caractères contient le mot « merci » ou « merci beaucoup » :
function estRemerciement(str) {
return /\b(merci|merci beaucoup)\b/i.test(str);
}
estRemerciement("Merci ! Vous m'avez beaucoup aidé."); // true
estRemerciement(
"Je tenais simplement à vous dire merci beaucoup pour tout le travail que vous avez accompli.",
); // true
estRemerciement("La fête de Thanksgiving approche à grands pas."); // false
Attention :
Les limites de mot ne sont pas clairement définies dans toutes les langues. Si vous travaillez avec des langues comme le chinois ou le thaï, qui n'utilisent pas de séparateurs blancs, utilisez plutôt une bibliothèque plus avancée comme Intl.Segmenter pour rechercher des mots.
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # prod-Assertion> |