Une limite de mot \b
teste une position, de la même manière que les ancres ^
et $
.
Quand le moteur d’expression régulière (module qui implémente la recherche d’expressions régulières) trouve le motif \b
, il vérifie si la position dans la chaine de caractères est une limite de mot.
Il y a trois positions possibles pour une limite de mot :
- Au début de la chaîne de caractères, si le premier caractère est alphanumérique (ou un trait de soulignement), c’est-à-dire qu’il correspond au motif
\w
. - Entre deux caractères d’une chaîne, si seulement l’un des caractères correspond au motif
\w
, (alphanumérique ou trait de soulignement). - À la fin de la chaîne de caractères, si le dernier caractère correspond au motif
\w
.
Par exemple l’expression régulière \bJava\b
sera trouvé dans Hello, Java!
, où Java
est un mot isolé, mais pas dans Hello, JavaScript!
.
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
Dans la chaîne Hello, Java!
les positions suivantes correspondent au motif \b
:
Cette chaîne passe le test du motif \bHello\b
, car :
- Le début de la chaîne passe le premier test
\b
. - Puis trouve le mot
Hello
. - Enfin le test
\b
est encore valide, comme nous sommes entreo
et une virgule.
Donc le motif \bHello\b
sera trouvé, mais pas \bHell\b
(car il n’y a pas de limite de mot après l
) ni Java!\b
(car le point d’exclamation ne correspond pas au motif \w
, il n’est donc pas suivi par une limite de mot).
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, Java!".match(/\bHell\b/) ); // null (aucune correspondance)
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (aucune correspondance)
La limite de mot \b
ne s’utilise pas uniquement pour des mots, mais aussi pour les nombres.
Par exemple, le motif \b\d\d\b
recherche un nombre isolé à deux chiffres. C’est-à-dire, qu’il cherche un nombre à deux chiffres entouré par des caractères qui ne correspondent pas au motif \w
, comme des espaces, une ponctuation, un début ou une fin de chaîne.
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
\b
ne fonctionne pas pour des alphabets non latinLe test de limite de mot \b
vérifie qu’il doit y avoir \w
d’un côté de la position et “not \w
” – de l’autre côté.
Comme \w
signifie a-z
(en minuscule ou majuscule), un chiffre ou un trait de soulignement, le test ne fonctionne pas pour d’autres caractères, p. ex. lettre cyrillique ou idéogramme.