JavaScript regulyar ifodalar (RegExp)

Email to’g’rimi? Matndan barcha raqamlarni ajratish kerakmi? Bunday vazifalar uchun matn metodlari yetmaydi — regulyar ifoda kerak.

Naqsh yozish

JavaScript

test — bormi yoki yo’q (true/false); match — topilgan qismni beradi.

Bayroqlar

JavaScript
  • gglobal: barcha mosliklarni topadi, birinchisida to’xtamaydi;
  • ikatta-kichik harfni farqlamaydi.

Belgi sinflari

JavaScript

Asosiy sinflar:

Belgi Ma’nosi
\d Raqam (0-9)
\w Harf, raqam yoki _
\s Bo’sh joy
. Istalgan belgi
[abc] a, b yoki c
[^abc] a, b, c dan boshqa
[a-z] a dan z gacha

Katta harf bilan yozilsa — teskarisi: \D raqam emas, \S bo’sh joy emas.

Miqdor belgilari

JavaScript
Belgi Ma’nosi
+ Bir yoki ko’p
* Nol yoki ko’p
? Nol yoki bitta
{3} Aynan 3 ta
{2,4} 2 dan 4 gacha
{2,} 2 va undan ko’p

Boshi va oxiri

JavaScript

^ — matn boshi, $ — oxiri. Ikkalasi birga qo’yilsa, butun matn naqshga mos kelishi talab qilinadi. Tekshiruvda bu deyarli har doim kerak.

Amaliy tekshiruvlar

JavaScript

Guruhlar

Qavs naqsh qismini ajratib oladi:

JavaScript

Nomlangan guruhlar o’qishni osonlashtiradi:

JavaScript

replace bilan almashtirish

JavaScript

$1, $2 — guruhlarga murojaat. Oxirgi misol — matnni tozalashning standart usuli.

Funksiya bilan yanada moslashuvchan:

JavaScript

matchAll — barcha guruhlar bilan

JavaScript

match faqat mosliklarni beradi; matchAll esa har biri uchun guruhlarni ham qaytaradi.

split bilan ajratish

JavaScript

Bir nechta ajratuvchi bir vaqtda ishlatilishi mumkin.

Amaliy mashq

  1. Matndan barcha raqamlarni \d+ bilan ajrating;
  2. ^ va $ bilan butun matn faqat harflardan iboratligini tekshiring;
  3. email naqshini yozib, uch xil qiymatda sinang;
  4. sanani kun.oy.yil shakliga replace bilan o’giring;
  5. nomlangan guruh bilan telefon raqamini qismlarga ajrating;
  6. matchAll bilan “nom: ball” juftliklarini yig’ing.

Qisqacha xulosa

  • Regex /naqsh/bayroq shaklida yoziladi; g — barchasi, i — harf farqsiz.
  • test mosligini tekshiradi, match va matchAll topilganini beradi.
  • \d, \w, \s — belgi sinflari; +, *, ?, {n,m} — miqdor.
  • ^ va $ matn boshi va oxirini belgilaydi — tekshiruvda majburiy.
  • Qavs guruh yaratadi; $1 yoki nomlangan groups orqali olinadi.
  • replace matn yoki funksiya bilan almashtiradi.

Keyingi darsda timer funksiyalari — vaqt bo’yicha kod bajarish.

Bu dars foydali bo'ldimi?

marta ko'rildi