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