So’z chegarasi \b – bu ^ va $ kabi test.
Regexp dvigateli (regexplarni qidirishni amalga oshiruvchi dastur moduli) \bga 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
\wbo’lsa. - Satrdagi ikki belgi o’rtasida, biri so’z belgisi
\w, ikkinchisi esa yo’q. - Satr oxirida, agar oxirgi satr belgisi so’z belgisi
\wbo’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 \bga mos keladi:
Shunday qilib, u \bSalom\b naqshiga mos keladi, chunki:
- Satr boshida birinchi test
\bga mos keladi. - Keyin
Salomso’ziga mos keladi. - Keyin
\btesti yana mos keladi, chunki bizova 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 \bni 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 \wdan 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…)