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â¦)