Межа слова \b
– це така ж сама перевірка як і ^
та $
.
Коли механізм регулярних виразів (програмний модуль, який здійснює пошук регулярних виразів) стикається з \b
, він перевіряє, чи є позиція в рядку межею слова.
Є три різні позиції, які кваліфікуються як межі слова:
- На початку рядка, якщо його перший символ представляє собою буквенний символ
\w
. - Між двома символами в рядку, де один є буквенним символом
\w
, а інший – ні. - В кінці рядка, якщо його останній символ представляє собою буквенний символ
\w
.
Наприклад, регулярний вираз \bJava\b
буде знайдено в Hello, Java!
, де Java
– окреме слово, але не буде знайдено в Hello, JavaScript!
.
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
У рядку Hello, Java!
наступні позиції будуть відповідати межам слова \b
:
Виходить, що воно відповідає шаблону \bHello\b
за наступними критеріями:
- На початку рядка відповідає першій перевірці
\b
. - Потім відповідає цілому слову
Hello
. - І, врешті-решт, перевірка
\b
також збігається, оскільки ми знаходимось між символомo
і комою.
Отже, шаблон \bHello\b
буде збігатися, при цьому, \bHell\b
– ні (оскільки немає закінчення слова після символу l
), а також не буде збігатися Java!\b
(оскільки знак оклику не буквенний символ \w
, тому після нього немає й межі слова).
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, Java!".match(/\bHell\b/) ); // null (no match)
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (no match)
Ми можемо використовувати \b
не тільки зі словами, а й з цифрами.
Наприклад, шаблон \b\d\d\b
шукає окремі двозначні числа. Іншими словами, він шукає двозначні числа, які оточені символами, відмінними від буквенних \w
, такі як пробіли чи знаки пунктуації (чи початок/кінець тексту).
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
не працює з алфавітами, відмінними від латинськогоПеревірка межі слова \b
звіряє чи є \w
з однієї сторони і "не \w
" – з іншої.
Але \w
позначає латинську літеру a-z
(або цифру чи нижнє підкреслення), тому перевірка не працює для інших символів, наприклад, кирилиці чи ієрогліфів.