Hranice slov \b je test, podobně jako ^ a $.
Když motor regulárních výrazů (programový modul, který implementuje hledání RV) narazí na \b, prověří, zda tato pozice v řetězci je hranicí slova.
Za hranici slova se považují celkem tři různé pozice:
- Na začátku řetězce, jestliže první znak v řetězci je slovní znak
\w. - Mezi dvěma znaky v řetězci, jestliže jeden z nich je slovní znak
\wa druhý ne. - Na konci řetězce, jestliže poslední znak v řetězci je slovní znak
\w.
Například regulární výraz \bJava\b bude nalezen v Hello, Java!, kde je Java 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! odpovídají \b následující pozice:
Odpovídá tedy vzoru \bHello\b, protože:
- První test
\bnajde shodu na začátku řetězce. - Pak se shoduje slovo
Hello. - Pak znovu najde shodu test
\b, jelikož jsme mezioa čárkou.
Vzor \bHello\b tedy najde shodu, ale vzor \bHell\b ne (protože za l není hranice slova) a Java!\b také ne (protože vykřičník není slovní znak \w, takže za ním nenásleduje hranice slova).
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
alert( "Hello, Java!".match(/\bHell\b/) ); // null (žádná shoda)
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (žádná shoda)
Můžeme používat \b nejenom se slovy, ale i s číslicemi.
Například vzor \b\d\d\b hledá samostatná 2-ciferná čísla. Jinými slovy, hledá 2-ciferná čísla, která jsou obklopena jinými znaky než \w, například mezerami nebo interpunkčními znaménky (nebo začátkem/koncem 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
\b nefunguje pro nelatinské abecedyTest hranice slova \b prověřuje, zda je na jedné straně pozice \w a na druhé „něco jiného než \w“.
Avšak \w znamená písmeno latinské abecedy a-z (nebo číslici či podtržítko), takže na jiných znacích, např. písmenech kyrilice nebo hieroglyfech, test nebude fungovat.
Komentáře
<code>, pro několik řádků je obalte značkou<pre>, pro více než 10 řádků vložte odkaz na pískoviště (plnkr, jsbin, codepen…)