Границы слов в регулярных выражениях JavaScript

В этом уроке вы узнаете, как использовать границу слова(\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, что намного короче.

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript