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
\best encore valide, comme nous sommes entreoet 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.
Commentaires
<code>, pour plusieurs lignes – enveloppez-les avec la balise<pre>, pour plus de 10 lignes - utilisez une sandbox (plnkr, jsbin, codepen…)