Hranice slova:\b

Hranice slova \b je test, stejně jako ^ a $ .

Když motor regulárních výrazů (programový modul, který implementuje vyhledávání regulárních výrazů) narazí na \b , zkontroluje, že pozice v řetězci je hranicí slova.

Existují tři různé polohy, které se kvalifikují jako hranice slov:

  • Pokud je na začátku řetězce znakem prvního řetězce slovo \w .
  • Mezi dvěma znaky v řetězci, kde jeden je znak slova \w a druhý ne.
  • Na konci řetězce, pokud je posledním znakem řetězce slovo \w .

Například regulární výraz \bJava\b naleznete v Hello, Java! , kde Java je samostatné slovo, ale ne v Hello, JavaScript! .

alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null

V řetězci Hello, Java! následující pozice odpovídají \b :

Takže odpovídá vzoru \bHello\b , protože:

  1. Na začátku řetězce odpovídá prvnímu testu \b .
  2. Pak odpovídá slovu Hello .
  3. Poté otestujte \b znovu odpovídá, protože jsme mezi o a čárka.

Tedy vzor \bHello\b by odpovídalo, ale ne \bHell\b (protože za l není žádná hranice slova ), nikoli Java!\b (protože vykřičník není slovní znak \w , takže za ním není žádná hranice slova).

alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) );  // Java
alert( "Hello, Java!".match(/\bHell\b/) );  // null (no match)
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (no match)

Můžeme použít \b nejen slovy, ale také číslicemi.

Například vzor \b\d\d\b hledá samostatná 2místná čísla. Jinými slovy, hledá dvouciferná čísla, která jsou obklopena znaky odlišnými od \w , jako jsou mezery nebo interpunkce (nebo začátek/konec textu).

alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
Hranice slova \b nefunguje pro jiné než latinské abecedy

Test hranic slov \b zkontroluje, že by mělo být \w na jedné straně od pozice a "ne \w “ – na druhé straně.

Ale \w znamená latinské písmeno a-z (nebo číslici nebo podtržítko), takže test nefunguje pro jiné znaky, např. cyrilice nebo hieroglyfy.