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â¦)