詞邊界斷言:\b, \B

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

單詞邊界斷言檢查字串中的當前位置是否是單詞邊界。單詞邊界是指下一個字元是單詞字元而前一個字元不是單詞字元,反之亦然。

語法

正則表示式
\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

瀏覽器相容性

另見