Ограничение границы слова: \b, \B
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Ограничение границы слова проверяет, является ли текущая позиция в строке границей слова. Граница слова — это место, где следующий символ является символом слова, а предыдущий символ — не является, или наоборот.
Синтаксис
\b \B
Описание
\b утверждает, что текущая позиция в строке является границей слова. \B отрицает утверждение: оно утверждает, что текущая позиция не является границей слова. Оба являются ограничениями, поэтому, в отличие от других экранирующих последовательностей символов или экранирующих последовательностей классов символов, \b и \B не потребляют никаких символов.
Символ слова включает следующее:
- Буквы (A–Z, a–z), цифры (0–9) и знак подчеркивания (_).
- Если регулярное выражение учитывает Unicode и установлен флаг
i, другие символы Unicode, которые канонизируются к одному из вышеуказанных символов с помощью свертки регистра.
Символы слова также соответствуют экранирующей последовательности класса символов \w.
Позиции ввода за пределами диапазона считаются несловесными символами. Например, следующие совпадения успешны:
/\ba/.exec("abc");
/c\b/.exec("abc");
/\B /.exec(" abc");
/ \B/.exec("abc ");
Примеры
Обнаружение слов
Следующий пример обнаруживает, содержит ли строка слово "thanks" или "thank you":
function hasThanks(str) {
return /\b(thanks|thank you)\b/i.test(str);
}
hasThanks("Thanks! You helped me a lot."); // true
hasThanks("Just want to say thank you for all your work."); // true
hasThanks("Thanksgiving is around the corner."); // false
Предупреждение: Не все языки имеют четко определенные границы слов. Если вы работаете с такими языками, как китайский или тайский, где нет разделителей пробелов, используйте более продвинутую библиотеку, такую как Intl.Segmenter, для поиска слов.
Спецификации
| Спецификация |
|---|
| Спецификация языка ECMAScript® 2027 # prod-Assertion |
Совместимость с браузерами
| Настольные | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
word_boundary_assertion |
1 |
12 |
1 |
5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
- Руководство по ограничениям
- Регулярные выражения
- Ограничение границы ввода:
^,$ - Ограничение взгляда вперед:
(?=...),(?!...) - Ограничение взгляда назад:
(?<=...),(?<!...) - Экранирование символа:
\n,\u{...}
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Word_boundary_assertion