6 сентябр 2025

Langarlar: satr boshi ^ va oxiri $

Karet ^ va dollar $ belgilari doimiy ifodada maxsus ma’noga ega. Ular “langarlar” deb ataladi.

Karet ^ matn boshida mos keladi, dollar $ esa oxirida.

Masalan, matn Mary bilan boshlanadimi deb tekshiraylik:

let str1 = "Mary had a little lamb";
alert( /^Mary/.test(str1) ); // true

^Mary naqshi: “satr boshi va keyin Mary” degani.

Xuddi shunday, satr snow bilan tugaydimi deb snow$ yordamida tekshirishimiz mumkin:

let str1 = "it's fleece was white as snow";
alert( /snow$/.test(str1) ); // true

Bu aniq hollarda biz startsWith/endsWith satr metodlaridan ham foydalanishimiz mumkin edi. Doimiy ifodalar murakkab testlar uchun ishlatilishi kerak.

To’liq moslik uchun test

Ikkala langar birgalikda ^...$ ko’pincha satr naqshga to’liq mos keladimi yoki yo’qligini tekshirish uchun ishlatiladi. Masalan, foydalanuvchi kiritgan ma’lumot to’g’ri formatdami deb tekshirish uchun.

Satr 12:34 formatida vaqtmi yoki yo’qligini tekshiraylik. Ya’ni: ikkita raqam, keyin ikki nuqta, keyin yana ikkita raqam.

Doimiy ifodalar tilida bu \d\d:\d\d:

let goodInput = "12:34";
let badInput = "12:345";

let regexp = /^\d\d:\d\d$/;
alert( regexp.test(goodInput) ); // true
alert( regexp.test(badInput) ); // false

Bu yerda \d\d:\d\d uchun moslik aynan matn boshi ^ dan keyin boshlanishi va oxiri $ darhol ergashishi kerak.

Butun satr aynan shu formatda bo’lishi kerak. Agar biron bir chetga chiqish yoki qo’shimcha belgi bo’lsa, natija false bo’ladi.

Agar m bayrog’i mavjud bo’lsa, langarlar boshqacha harakat qiladi. Buni keyingi maqolada ko’ramiz.

Langarlar "nol kenglik"ga ega

^ va $ langarlar testlardir. Ular nol kenglikka ega.

Boshqacha qilib aytganda, ular belgiga mos kelmaydi, balki regexp dvigatelini shart (matn boshi/oxiri) ni tekshirishga majbur qiladi.

Vazifalar

Qaysi qator ^$ naqshiga mos keladi?

Bo’sh satrning o’zi mos keladi: u boshlanadi va darhol tugaydi.

Vazifa shuni yana bir bor ko’rsatadiki langarlar qahramonlar emas, balki sinovlar ekanligini.

Satr bo’sh "". Dvigatel avval ^ (kirish boshlanishi) ga to’g’ri keladi, ha shu yerda, so’ngra darhol oxirgi $, u ham shu yerda. Demak, mos keladi.

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…)