Simbolių grupės reguliariuosiuose JavaScript išraiškose
Yra specialios komandos, kurios leidžia
iš karto pasirinkti ištisas simbolių grupes. Komanda
\d reiškia skaitmenį nuo 0 iki 9.
Komanda \w žymi skaitmenį, lotynišką
raidę arba pabraukimo ženklą. Komanda \s
žymi tarpą arba tarpinį simbolį:
tarpą, eilutės pertrauką, tabuliaciją. Galima
invertuoti komandos reikšmę, parašius didžiąją
raidę: pavyzdžiui, jei \d - skaitmuo,
tai \D - ne skaitmuo.
Pavyzdys
Raskime visus skaitmenis:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! !! !!!'
Pavyzdys
Pasikartojimo operatoriai laiko komandas-grupes
vienetu, tai yra, grupavimo skliaustai
nereikalingi. Šiame pavyzdyje paieškos šablonas
atrodo taip: skaitmuo nuo 0 iki 9
vieną ar daugiau kartų:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! abc @@@'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo
taip: bet kas vieną ar daugiau kartų,
bet ne skaitmuo nuo 0 iki 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'123!3!'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo taip: tarpinis simbolis vieną kartą:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'1!12!123!abc!@@@'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo taip:
NE tarpinis simbolis vieną ar daugiau kartų.
Visos poeilutės, atskirtos tarpais, bus pakeistos
į '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! ! !'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo taip:
skaitmuo arba raidė vieną ar daugiau kartų.
Visos poeilutės, susidedančios iš skaitmenų ir raidžių,
bus pakeistos į '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'! ! ! ! @@@'
Pavyzdys
Šiame pavyzdyje paieškos šablonas atrodo taip:
NE skaitmuo ir NE raidė vieną ar daugiau kartų.
Pagal šį apibrėžimą mūsų atveju pateks
'@@@' ir visi tarpai (juk jie taip pat
ne skaitmenys ir ne raidės). Atkreipkite dėmesį į
tai, kad pabaigoje vienas '!' - į jį
transformavosi eilutė ' @@@' - su
tarpu priekyje:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Rezultate į kintamąjį bus įrašyta taip:
'1!12!123!Abc!'
Praktinės užduotys
Duota eilutė:
let str = 'a1a a2a a3a a4a a5a aba aca';
Parašykite reguliariąją išraišką, kuri ras eilutes,
kuriose kraštuose yra raidės 'a',
o tarp jų vienas skaitmuo.
Duota eilutė:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Parašykite reguliariąją išraišką, kuri ras eilutes,
kuriose kraštuose yra raidės 'a',
o tarp jų bet koks skaitmenų kiekis.
Duota eilutė:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Parašykite reguliariąją išraišką, kuri ras eilutes,
kuriose kraštuose yra raidės 'a',
o tarp jų bet koks skaitmenų kiekis (taip
pat ir nulis skaitmenų, tai yra eilutė 'aa').
Duota eilutė:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Parašykite reguliariąją išraišką, kuri ras eilutes
šio tipo: kraštuose yra raidės
'a' ir 'b', o tarp jų - ne
skaičius ir ne tarpas.
Duota eilutė:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Parašykite reguliariąją išraišką, kuri ras eilutes
šio tipo: kraštuose yra raidės
'a' ir 'b', o tarp jų - ne
raidė, ne skaitmuo ir ne tarpas.
Duota eilutė:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Parašykite reguliariąją išraišką, kuri pakeis visus tarpus
į '!'.