6 сентябр 2025

So'z chegarasi: \b

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 \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 \bga mos keladi:

Shunday qilib, u \bSalom\b naqshiga mos keladi, chunki:

  1. Satr boshida birinchi test \bga mos keladi.
  2. Keyin Salom so’ziga mos keladi.
  3. Keyin \b testi yana mos keladi, chunki biz o 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 \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
So’z chegarasi \b lotin bo’lmagan alifbolar uchun ishlamaydi

So’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.

Vazifalar

Vaqt formati bor: soat:daqiqa. Soat va daqiqalarda ikkita raqam mavjud, masalan, 09:00.

Satrda vaqt topish uchun regexp kiriting: mavzu: 123:456 xonada soat 09:00 nonushta.

P.S. Bu vazifada hali vaqt toʻgʻriligini tekshirishning hojati yoʻq, shuning uchun 25:99 ham haqiqiy natija boʻlishi mumkin.

P.P.S. Regexp 123:456 ga mos kelmasligi kerak.

Javob: \b\d\d:\d\d\b.

alert("Nonushta soat 09:00 da 123:456 xonada. ".match(/\b\d\d:\d\d\b/)); // 09:00
O'quv qo'llanma xaritasi

Izohlar

izoh berishdan oldin buni o'qing…
  • Agar sizda nimani yaxshilash kerakligi haqida takliflaringiz bo'lsa - iltimos, GitHub muammosini yuboring yoki izoh berish o'rniga so'rov yuboring.
  • Agar siz maqolada biror narsani tushunolmasangiz - iltimos, batafsilroq ma'lumot bering.
  • Bir nechta so'z so'zlarini kiritish uchun <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…)