Межа слова \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 (або цифру чи нижнє підкреслення), тому перевірка не працює для інших символів, наприклад, кирилиці чи ієрогліфів.
Коментарі
<code>, для кількох рядків – обгорніть їх тегом<pre>, для понад 10 рядків – використовуйте пісочницю (plnkr, jsbin, codepen…)