词边界断言:\b、\B

基线 广泛可用

此功能已建立良好,并在许多设备和浏览器版本上运行。它从 2015 年 7 月.

**词边界断言** 检查字符串中的当前位置是否是词边界。词边界是下一个字符是词字符而前一个字符不是词字符的地方,反之亦然。

语法

正则表达式
\b
\B

描述

\b 断言字符串中的当前位置是词边界。\B 否定断言:它断言当前位置不是词边界。两者都是断言,因此与其他字符转义字符类转义不同,\b\B 不消耗任何字符。

词字符包括以下内容

  • 字母 (A–Z, a–z)、数字 (0–9) 和下划线 (_)。
  • 如果正则表达式支持 Unicodei 标志已设置,则其他通过大小写折叠规范化为上述字符之一的 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 语言规范
# prod-Assertion

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅