Word boundary assertion: \b, \B

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Một word boundary assertion kiểm tra xem vị trí hiện tại trong chuỗi có phải là ranh giới từ không. Ranh giới từ là nơi ký tự tiếp theo là ký tự từ và ký tự trước đó không phải là ký tự từ, hoặc ngược lại.

Cú pháp

regex
\b
\B

Mô tả

\b xác nhận rằng vị trí hiện tại trong chuỗi là ranh giới từ. \B phủ định assertion: nó xác nhận rằng vị trí hiện tại không phải là ranh giới từ. Cả hai đều là assertions, vì vậy không giống như các character escapes hoặc character class escapes khác, \b\B không tiêu thụ bất kỳ ký tự nào.

Một ký tự từ bao gồm những ký tự sau:

  • Các chữ cái (A–Z, a–z), số (0–9), và dấu gạch dưới (_).
  • Nếu regex là Unicode-aware và flag i được đặt, các ký tự Unicode khác được chuẩn hóa thành một trong các ký tự trên thông qua case folding.

Các ký tự từ cũng được khớp bởi character class escape \w.

Các vị trí đầu vào vượt ra ngoài giới hạn được coi là các ký tự không phải từ. Ví dụ, các kết quả khớp sau thành công:

js
/\ba/.exec("abc");
/c\b/.exec("abc");

/\B /.exec(" abc");
/ \B/.exec("abc ");

Ví dụ

Phát hiện các từ

Ví dụ sau phát hiện xem một chuỗi có chứa từ "thanks" hoặc "thank you" không:

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

Warning: Không phải tất cả các ngôn ngữ đều có ranh giới từ được định nghĩa rõ ràng. Nếu bạn đang làm việc với các ngôn ngữ như tiếng Trung hay tiếng Thái, trong đó không có dấu phân cách khoảng trắng, hãy sử dụng thư viện nâng cao hơn như Intl.Segmenter để tìm kiếm các từ thay thế.

Thông số kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# prod-Assertion

Tương thích trình duyệt

Xem thêm