Ievads regulārajās izteiksmēs JavaScript
Regulārās izteiksmes ir tādas komandas sarežģītai meklēšanai un aizstāšanai (vai vienkārši meklēšanai). Tās ļauj darīt ļoti interesantas lietas, bet diemžēl ir diezgan grūti apgūstamas.
Pastāv vairākas JavaScript metodes
darbam ar regulārajām izteiksmēm. Mēs sāksim
iepazīties ar tām, izmantojot piemēru replace
- jūs jau esat iepazinies ar šo metodi: tā ar pirmo
parametru pieņem, ko aizstāt, bet ar otro
- ar ko aizstāt. Un pati metode tiek piemērota
virknei, kurā tiek veikta aizstāšana:
'bab'.replace('a', '!'); // atgriezīs 'b!b'
Šīs metodes pirmajā parametrā var padot
ne tikai virkni, bet arī regulāro izteiksmi.
Regulāra izteiksme ir
komandu kopums, kas atrodas slīpsvītru / iekšpusē. Šīs
slīpsvītras sauc par regulāro izteiksmju ierobežotājiem.
Pats regulārās izteiksmes sastāv no diviem zīmju veidiem: no tām, kas apzīmē pašas sevi, un no komandu zīmēm, ko sauc par speciālajām zīmēm.
Burti un cipari apzīmē paši sevi. Nākamajā
piemērā mēs ar regulārās izteiksmes palīdzību
aizvietosim burtu 'a' ar !:
'bab'.replace(/a/, '!'); // atgriezīs 'b!b'
Savukārt punkts ir speciāla zīme
un apzīmē jebkuru simbolu. Nākamajā
piemērā mēs atradīsim virkni pēc šāda veidnes:
burts 'x', pēc tam jebkurš simbols, pēc tam
atkal burts 'x':
'xax eee'.replace(/x.x/, '!'); // atgriezīs '! eee'
Pēc ierobežotājiem var rakstīt modifikatorus
- komandas, kas maina regulārās izteiksmes
vispārīgās īpašības. Piemēram, modifikators
g ieslēdz globālās meklēšanas
un aizstāšanas režīmu - bez tā regulārā izteiksme meklē tikai
pirmo atbilstību, bet ar to - visas atbilstības.
Nākamajā piemērā nav norādīts modifikators
g un regulārā izteiksme atradīs tikai pirmo
atbilstību:
'aab'.replace(/a/, '!'); // atgriezīs '!ab'
Bet tagad regulārā izteiksme atradīs visas atbilstības:
'aab'.replace(/a/g, '!'); // atgriezīs '!!b'
Dota virkne:
let str = 'ahb acb aeb aeeb adcb axeb';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
'ahb', 'acb', 'aeb'
pēc veidnes: burts 'a', jebkurš simbols,
burts 'b'.
Dota virkne:
let str = 'aba aca aea abba adca abea';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
'abba', 'adca', 'abea'
pēc veidnes: burts 'a', 2
jebkuri simboli, burts 'a'.
Dota virkne:
let str = 'aba aca aea abba adca abea';
Uzrakstiet regulāro izteiksmi, kas atradīs virknes
'abba' un 'abea', neaptverot
'adca'.