Įvadas į reguliariuosius išraiškas JavaScript
Reguliariosios išraiškos yra tokios komandos sudėtingai paieškai ir pakeitimui (arba tiesiog paieškai). Jos leidžia daryti labai įdomius dalykus, bet, deja, gana sunkiai įsisavinamos.
Yra keletas JavaScript metodų, skirtų
darbui su reguliariosiomis išraiškomis. Mes pradėsime
su jomis susipažinti pavyzdyje su replace
- jūs jau esate susipažinę su šiuo metodu: jis pirmuoju
parametru priima ką keisti, o antruoju
- į ką keisti. O pats metodas taikomas
eilutei, kurioje atliekamas pakeitimas:
'bab'.replace('a', '!'); // grąžins 'b!b'
Pirmuoju šio metodo parametru galima perduoti
ne tik paprastą eilutę, bet ir reguliariąją išraišką.
Reguliarioji išraiška yra komandų rinkinys,
esantis tarp pasvirųjų brūkšnių /. Šie
pasvirieji brūkšniai vadinami ribotuvais reguliariųjų
išraiškų.
Pačios reguliariosios išraiškos susideda iš dviejų tipų simbolių: iš tų, kurie žymi patys save ir iš simbolių-komandų, kurie vadinami specialiaisiais simboliais.
Raidės ir skaičiai žymi patys save. Toliau pateiktame
pavyzdyje mes naudodami reguliariąją išraišką
pakeisime raidę 'a' į !:
'bab'.replace(/a/, '!'); // grąžins 'b!b'
O taškas yra specialusis simbolis
ir žymi bet kurį simbolį. Toliau pateiktame
pavyzdyje rasime eilutę pagal šį šabloną:
raidė 'x', tada bet koks simbolis, tada
vėl raidė 'x':
'xax eee'.replace(/x.x/, '!'); // grąžins '! eee'
Po ribotuvų galima rašyti modifikatorius
- komandas, kurios keičia bendras
regulariosios išraiškos savybes. Pavyzdžiui, modifikatorius
g įjungia globalios paieškos
ir pakeitimo režimą - be jo reguliarioji išraiška ieško tik
pirmo atitikmens, o su juo - visus atitikmenis.
Toliau pateiktame pavyzdyje nenurodytas modifikatorius
g ir reguliarioji išraiška ras tik pirmąjį
atitikmenį:
'aab'.replace(/a/, '!'); // grąžins '!ab'
O dabar reguliarioji išraiška ras visus atitikmenis:
'aab'.replace(/a/g, '!'); // grąžins '!!b'
Duota eilutė:
let str = 'ahb acb aeb aeeb adcb axeb';
Parašykite reguliariąją išraišką, kuri ras eilutes
'ahb', 'acb', 'aeb'
pagal šabloną: raidė 'a', bet koks simbolis,
raidė 'b'.
Duota eilutė:
let str = 'aba aca aea abba adca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'abba', 'adca', 'abea'
pagal šabloną: raidė 'a', 2
bet kokie simboliai, raidė 'a'.
Duota eilutė:
let str = 'aba aca aea abba adca abea';
Parašykite reguliariąją išraišką, kuri ras eilutes
'abba' ir 'abea', neperimdama
'adca'.