Словесный граница `\b` в регулярных выражениях определена как граница между символом, который может быть частью слова и символом, который не может быть частью слова. "Слово" в этом контексте означает последовательность символов, которые соответствуют `\w`, что в свою очередь эквивалентно `[a-zA-Z0-9_]` — т.е. латинские буквы, цифры и подчеркивания.
Кириллические символы, иероглифы и другие нетипичные для английского языка символьные системы не подпадают под определение `\w` в стандартных регулярных выражениях, и следовательно, не будут учитываться в `\b`.
Флаг `u` (Unicode) в JavaScript-регулярных выражениях расширяет поведение некоторых модификаторов для поддержки Unicode, но это не всегда может решить проблему с `\b`, так как определение "слова" все еще остается ограниченным.
Чтобы включить Эти символы, вам нужно будет определить собственные условия границ слова. Например, вы можете использовать позитивные look-ahead и look-behind утверждения с комбинацией Unicode property escapes (если ваша среда поддерживает их) для кириллицы:
```javascript
// Предположим, что this.search уже в нижнем регистре
const searchEscaped = this.search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // экранирование специальных символов
const regex = new RegExp(`(?<!\\p{L})${searchEscaped}(?!\\p{L})`, 'iu');
```
Здесь `\\p{L}` представляет собой любой символ буквенной категории ("Letter" в Unicode), что включает и кириллицу, и иероглифы, и многие другие буквенные системы. `(?<!...)` и `(?!...)` — это look-behind и look-ahead утверждения, соответственно.
Учтите, что использование флага `u` и Unicode property escapes требует поддержки ES2018 в вашем JavaScript-движке.
Также стоит помнить, что в JavaScript начиная с ES6 (ECMAScript 2015), строки регулярных выражений могут быть созданы с использованием литералов шаблонных строк.движок. Вместо создания регулярного выражения через `new RegExp`, вы можете использовать литеральный синтаксис регулярных выражений, если ваш паттерн не требует динамического составления:
```javascript
const regex = /(?<!\p{L})your-search-term(?!\p{L})/iu;
```
Замените `your-search-term` на фактическую строку поиска, которую вы хотите использовать, убедившись, что вы правильно экранировали любые специальные регулярные выражения символов.