Rakstzīmju grupas JavaScript regulārajās izteiksmēs
Pastāv īpašas komandas, kas ļauj
atlasīt uzreiz veselas rakstzīmju grupas. Komanda
\d apzīmē ciparu no 0 līdz 9.
Komanda \w apzīmē ciparu, latīņu
burtu vai apakšsvītras zīmi. Komanda \s
apzīmē atstarpi vai atstarpes rakstzīmi:
atstarpi, rindas beigas, tabulēšanu. Var
invertēt komandas nozīmi, ierakstot lielo
burtu: piemēram, ja \d - cipars,
tad \D - nav cipars.
Piemērs
Atradīsim visus ciparus:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'! !! !!!'
Piemērs
Atkārtošanās operatori uzskata komandu-grupas
par vienu veselu, tas ir, grupējošas iekavas
nav vajadzīgas. Nākamajā piemērā meklēšanas šablons
izskatās šādi: cipars no 0 līdz 9
vienu reizi vai vairāk:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'! ! ! abc @@@'
Piemērs
Nākamajā piemērā meklēšanas šablons izskatās
šādi: jebkas viens vai vairāk reižu,
bet ne cipars no 0 līdz 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'123!3!'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi: atstarpes rakstzīme vienu reizi:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'1!12!123!abc!@@@'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
NE atstarpes rakstzīme vienu vai vairāk reižu.
Visas apakšvirknes, atdalītas ar atstarpēm, tiks aizvietotas
ar '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'! ! ! ! !'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
cipars vai burts vienu vai vairāk reižu.
Visas apakšvirknes, kas sastāv no cipariem un burtiem,
tiks aizvietotas ar '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'! ! ! ! @@@'
Piemērs
Šajā piemērā meklēšanas šablons izskatās šādi:
NE cipars un NE burts vienu vai vairāk reižu.
Pēc šīs definīcijas mūsu gadījumā iekļūst
'@@@' un visas atstarpes (tās arī taču
nav ne cipari, ne burti). Pievērsiet uzmanību
tam, ka beigās ir viens '!' - tajā
pārveidojās virkne ' @@@' - ar
atstarpi sākumā:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Rezultātā mainīgajā tiks ierakstīts sekojošs:
'1!12!123!Abc!'
Praktiskie uzdevumi
Dota virkne:
let str = 'a1a a2a a3a a4a a5a aba aca';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes,
kurās malās atrodas burti 'a',
un starp tiem ir viens cipars.
Dota virkne:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes,
kurās malās atrodas burti 'a',
un starp tiem ir jebkurš ciparu daudzums.
Dota virkne:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes,
kurās malās atrodas burti 'a',
un starp tiem ir jebkurš ciparu daudzums (ieskaitot
arī nulles ciparu skaitu, tas ir, virkni 'aa').
Dota virkne:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
sekojošā veidā: malās atrodas burti
'a' un 'b', un starp tiem - nav
skaitlis un nav atstarpe.
Dota virkne:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
sekojošā veidā: malās atrodas burti
'a' un 'b', un starp tiem - nav
burts, nav cipars un nav atstarpe.
Dota virkne:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Uzrakstiet regulāro izteiksmi, kas aizvietos visas atstarpes
ar '!'.