JavaScript regulyar ifodalar (RegExp)
Email to’g’rimi? Matndan barcha raqamlarni ajratish kerakmi? Bunday vazifalar uchun matn metodlari yetmaydi — regulyar ifoda kerak.
Naqsh yozish
test — bormi yoki yo’q (true/false); match — topilgan qismni beradi.
Bayroqlar
g— global: barcha mosliklarni topadi, birinchisida to’xtamaydi;i— katta-kichik harfni farqlamaydi.
Belgi sinflari
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
| 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
^ — matn boshi, $ — oxiri. Ikkalasi birga qo’yilsa, butun matn
naqshga mos kelishi talab qilinadi. Tekshiruvda bu deyarli har doim kerak.
Amaliy tekshiruvlar
Guruhlar
Qavs naqsh qismini ajratib oladi:
Nomlangan guruhlar o’qishni osonlashtiradi:
replace bilan almashtirish
$1, $2 — guruhlarga murojaat. Oxirgi misol — matnni tozalashning
standart usuli.
Funksiya bilan yanada moslashuvchan:
matchAll — barcha guruhlar bilan
match faqat mosliklarni beradi; matchAll esa har biri uchun guruhlarni
ham qaytaradi.
split bilan ajratish
Bir nechta ajratuvchi bir vaqtda ishlatilishi mumkin.
Amaliy mashq
- Matndan barcha raqamlarni
\d+bilan ajrating; ^va$bilan butun matn faqat harflardan iboratligini tekshiring;- email naqshini yozib, uch xil qiymatda sinang;
- sanani
kun.oy.yilshakligareplacebilan o’giring; - nomlangan guruh bilan telefon raqamini qismlarga ajrating;
matchAllbilan “nom: ball” juftliklarini yig’ing.
Qisqacha xulosa
- Regex
/naqsh/bayroqshaklida yoziladi;g— barchasi,i— harf farqsiz. testmosligini tekshiradi,matchvamatchAlltopilganini beradi.\d,\w,\s— belgi sinflari;+,*,?,{n,m}— miqdor.^va$matn boshi va oxirini belgilaydi — tekshiruvda majburiy.- Qavs guruh yaratadi;
$1yoki nomlangangroupsorqali olinadi. replacematn yoki funksiya bilan almashtiradi.
Keyingi darsda timer funksiyalari — vaqt bo’yicha kod bajarish.