В этом уроке вы узнаете, как использовать границу слова(\b ) в регулярных выражениях JavaScript.
(\b ) — это якорь, подобный каретке( ^ ) и знаку доллара( $ ). Он соответствует положению, которое называется «граница слова». Соответствие имеет нулевую длину.
Следующие три положения квалифицируются как границы слов:
- Перед первым символом в строке, если первый символ является символом слова.
- После последнего символа в строке, если последний символ является символом слова.
- Между двумя символами в строке, если один является символом слова, а другой нет.
Проще говоря, граница слова \b позволяет провести совпадение всего слова с помощью регулярного выражения в следующем виде:
\bword\b
Например, в строке Hello, JS! следующие позиции квалифицируются как граница слова:

В следующем примере возвращается ‘JS’ потому что ‘Hello, JS!’ соответствует регулярному выражению /\bJS\b/ :
console.log('Hello, JS!'.match(/\bJS\b/));
// trueВыход:
["JS"]
Однако ‘Hello, JScript’ не соответствует /\bJS\b/ :
console.log('Hello, JSscript!'.match(/\bJS\b/));
// nullОбратите внимание, что без \b /JS/ соответствует как ‘Hello, JS’ так и ‘Hello, JScript’ :
console.log('Hello, JSscript!'.match(/JS/)); // ["JS"]
console.log('Hello, JS!'.match(/JS/)); // ["JS"]Можно использовать границу слова с цифрами.
Например, регулярное выражение \b\d\d\d\d\b соответствует 4-значному числу, окруженному символами, отличными от \w :
console.log('ES 2015'.match(/\b\d\d\d\d\b/));
Выход:
["2015"]
В следующем примере используется граница слова для поиска времени в формате hh:mm, например, 09:15 :
let str = 'I start coding JS at 05:30 AM'; let re = /\b\d\d:\d\d\b/; let result = str.match(re); console.log(result);
Выход:
["05:30"]
Важно отметить, что \b в JavaScript не работает для нелатинских слов.
Как вы уже видели, шаблоны \d\d\d\d и \d\d использовались для сопоставления четырехзначного или двузначного числа.
Будет проще и гибче, если вы будете использовать квантификаторы, которые будут рассмотрены в учебнике по квантификаторам. По сути, вы можете использовать \d{4} вместо \d\d\d\d, что намного короче.
