词边界断言:\b, \B
单词边界断言检查字符串中的当前位置是否是单词边界。单词边界是指下一个字符是单词字符而前一个字符不是单词字符,反之亦然。
语法
正则表达式
\b
\B
描述
\b 断言字符串中的当前位置是单词边界。\B 否定了该断言:它断言当前位置不是单词边界。两者都是断言,因此与其他的字符转义或字符类别转义不同,\b 和 \B 不会消耗任何字符。
单词字符包括以下内容:
- 字母(A–Z,a–z)、数字(0–9)和下划线(_)。
- 如果正则表达式是Unicode 感知的并且设置了
i标志,则通过大小写折叠规范化为上述字符之一的其他 Unicode 字符。
单词字符也由 \w 字符类别转义匹配。
超出范围的输入位置被视为非单词字符。例如,以下是成功匹配:
js
/\ba/.exec("abc");
/c\b/.exec("abc");
/\B /.exec(" abc");
/ \B/.exec("abc ");
示例
检测单词
以下示例检测字符串是否包含单词“thanks”或“thank you”:
js
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® 2026 语言规范 # prod-Assertion |
浏览器兼容性
加载中…