So’z chegarasi \b
– bu ^
va $
kabi test.
Regexp dvigateli (regexplarni qidirishni amalga oshiruvchi dastur moduli) \b
ga duch kelganda, u satrdagi pozitsiya so’z chegarasi ekanligini tekshiradi.
So’z chegarasi sifatida uchta turli pozitsiya mavjud:
- Satr boshida, agar birinchi satr belgisi so’z belgisi
\w
bo’lsa. - Satrdagi ikki belgi o’rtasida, biri so’z belgisi
\w
, ikkinchisi esa yo’q. - Satr oxirida, agar oxirgi satr belgisi so’z belgisi
\w
bo’lsa.
Masalan, \bJava\b
regexp Salom, Java!
da topiladi, bu yerda Java
mustaqil so’z, lekin Salom, JavaScript!
da emas.
alert( "Salom, Java!".match(/\bJava\b/) ); // Java
alert( "Salom, JavaScript!".match(/\bJava\b/) ); // null
Salom, Java!
satrida quyidagi pozitsiyalar \b
ga mos keladi:
Shunday qilib, u \bSalom\b
naqshiga mos keladi, chunki:
- Satr boshida birinchi test
\b
ga mos keladi. - Keyin
Salom
so’ziga mos keladi. - Keyin
\b
testi yana mos keladi, chunki bizo
va vergul o’rtasidamiz.
Shunday qilib, \bSalom\b
naqshi mos keladi, lekin \bSalo\b
emas (chunki o
dan keyin so’z chegarasi yo’q) va Java!\b
ham emas (chunki undov belgisi so’z belgisi \w
emas, shuning uchun undan keyin so’z chegarasi yo’q).
alert( "Salom, Java!".match(/\bSalom\b/) ); // Salom
alert( "Salom, Java!".match(/\bJava\b/) ); // Java
alert( "Salom, Java!".match(/\bHell\b/) ); // null (moslik yo'q)
alert( "Salom, Java!".match(/\bJava!\b/) ); // null (moslik yo'q)
Biz \b
ni nafaqat so’zlar bilan, balki raqamlar bilan ham ishlatishimiz mumkin.
Masalan, \b\d\d\b
naqshi mustaqil 2 xonali raqamlarni qidiradi. Boshqacha qilib aytganda, u \w
dan farqli belgilar bilan o’ralgan 2 xonali raqamlarni qidiradi, masalan bo’shliqlar yoki tinish belgilari (yoki matn boshi/oxiri).
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
lotin bo’lmagan alifbolar uchun ishlamaydiSo’z chegarasi testi \b
pozitsiyaning bir tomonida \w
bo’lishi va boshqa tomonida “not \w
” bo’lishi kerakligini tekshiradi.
Lekin \w
lotin harfi a-z
(yoki raqam yoki pastki chiziq) degani, shuning uchun test boshqa belgilar uchun ishlamaydi, masalan kirill harflari yoki ierogliflar.
Izohlar
<code>
yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>
yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepen…)