Wortgrenzen-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.

Eine Wortgrenzen-Assertion überprüft, ob die aktuelle Position im String eine Wortgrenze ist. Eine Wortgrenze ist der Punkt, an dem das nächste Zeichen ein Wortzeichen ist und das vorherige Zeichen kein Wortzeichen ist, oder umgekehrt.

Syntax

regex
\b
\B

Beschreibung

\b bestätigt, dass die aktuelle Position im String eine Wortgrenze ist. \B negiert die Assertion: Es wird bestätigt, dass die aktuelle Position keine Wortgrenze ist. Beide sind Assertions, daher verbrauchen \b und \B im Gegensatz zu anderen Zeicheneskapierungen oder Zeichenklassen-Eskapierungen keine Zeichen.

Ein Wortzeichen umfasst folgende:

  • Buchstaben (A–Z, a–z), Zahlen (0–9) und Unterstrich (_).
  • Wenn der Regex Unicode-bewusst ist und das i-Flag gesetzt ist, auch andere Unicode-Zeichen, die durch Case Folding kanonisch zu einem der oben genannten Zeichen werden.

Wortzeichen werden auch durch die \w Zeichenklassen-Eskapierung übereinstimmt.

Außerhalb der Grenzen liegende Positionen werden als Nicht-Wortzeichen betrachtet. Zum Beispiel sind die folgenden erfolgreiche Übereinstimmungen:

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

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

Beispiele

Erkennen von Wörtern

Das folgende Beispiel erkennt, ob ein String das Wort "thanks" oder "thank you" enthält:

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

Warnung: Nicht alle Sprachen haben klar definierte Wortgrenzen. Wenn Sie mit Sprachen wie Chinesisch oder Thailändisch arbeiten, bei denen es keine Leerzeichentrenner gibt, verwenden Sie stattdessen eine fortgeschrittenere Bibliothek wie Intl.Segmenter, um nach Wörtern zu suchen.

Spezifikationen

Specification
ECMAScript Language Specification
# prod-Assertion

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch