JavaScript Regular Ifodalaridagi Belgilar Guruhlari
Bir vaqtning o'zida butun belgilar guruhlarini tanlash imkonini beruvchi maxsus buyruqlar mavjud.
\d buyrug'i 0 dan 9 gacha raqamni anglatadi.
\w buyrug'i raqam, lotin harfi yoki pastki chiziq belgisini bildiradi.
\s buyrug'i bo'shliq yoki bo'sh joy belgisini anglatadi:
bo'shliq, qator almashinuvi, tabulyatsiya.
Buyruqning qiymatini katta harf yozib, inversiyalash mumkin:
masalan, agar \d - raqam bo'lsa,
\D - raqam emas.
Misol
Keling, barcha raqamlarni topamiz:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! !! !!!'
Misol
Takrorlash operatorlari buyruq-guruhlarni butun deb hisoblaydi,
ya'ni guruhlashtiruvchi qavslar kerak emas.
Quyidagi misolda qidiruv shabloni quyidagicha ko'rinadi:
0 dan 9 gacha raqam bir yoki bir necha marta:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! abc @@@'
Misol
Quyidagi misolda qidiruv shabloni quyidagicha ko'rinadi:
bir yoki bir necha marta ixtiyoriy narsa, lekin 0 dan 9 gacha raqam emas:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'123!3!'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi: bo'sh joy belgisi bir marta:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'1!12!123!abc!@@@'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
bo'sh joy belgisi EMAS bir yoki bir necha marta.
Bo'shliqlar bilan ajratilgan barcha qatorlar '!' ga almashtiriladi:
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! !'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
raqam yoki harf bir yoki bir necha marta.
Raqamlar va harflardan tashkil topgan barcha qatorlar '!' ga almashtiriladi:
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'! ! ! ! @@@'
Misol
Ushbu misolda qidiruv shabloni quyidagicha ko'rinadi:
raqam EMAS va harf EMAS bir yoki bir necha marta.
Bizning holatda bu ta'rifga '@@@' va barcha bo'shliqlar mos keladi (chunki ular ham raqam yoki harf emas).
E'tibor bering, oxirida bitta '!' bor - unga ' @@@' qatori - oldida bo'shliq bilan aylantirildi:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Natijada o'zgaruvchiga quyidagilar yoziladi:
'1!12!123!Abc!'
Amaliy vazifalar
Quyidagi qator berilgan:
let str = 'a1a a2a a3a a4a a5a aba aca';
chettalari 'a' harflari bilan o'ralgan, ular orasida bitta raqam bo'lgan qatorlarni topadigan regular ifoda yozing.
Quyidagi qator berilgan:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
chettalari 'a' harflari bilan o'ralgan, ular orasida ixtiyoriy miqdordagi raqamlar bo'lgan qatorlarni topadigan regular ifoda yozing.
Quyidagi qator berilgan:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
chettalari 'a' harflari bilan o'ralgan, ular orasida ixtiyoriy miqdordagi raqamlar (shu jumladan nol raqam, ya'ni 'aa' qatori) bo'lgan qatorlarni topadigan regular ifoda yozing.
Quyidagi qator berilgan:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Quyidagi ko'rinishdagi qatorlarni topadigan regular ifoda yozing:
chettalari 'a' va 'b' harflari bilan o'ralgan, ular orasida - raqam emas va bo'sh joy emas.
Quyidagi qator berilgan:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Quyidagi ko'rinishdagi qatorlarni topadigan regular ifoda yozing:
chettalari 'a' va 'b' harflari bilan o'ralgan, ular orasida - harf emas, raqam emas va bo'sh joy emas.
Quyidagi qator berilgan:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Barcha bo'shliqlarni '!' ga almashtiradigan regular ifoda yozing.