'Tai'-komento JavaScriptin säännöllisissä lausekkeissa
Tässä oppitunnissa käsittelemme komentoa
'|', joka edustaa
tehokkaampaa 'tai' -versiota verrattuna
komentoon [ ]. Tämä komento mahdollistaa
säännöllisen lausekkeen jakamisen useaan osaan.
Tällöin haettu voi osua joko yhteen
säännöllisen lausekkeen osaan tai toiseen. Katsotaanpa
esimerkkien avulla.
Esimerkki
Tässä esimerkissä hakumalli on: kolme
kirjainta 'a' tai kolme kirjainta 'b':
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! abb'
Esimerkki
Tässä esimerkissä hakumalli on: kolme
kirjainta 'a' tai 1 tai enemmän
kirjaimia 'b':
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! ! ! axx'
Esimerkki
Tässä esimerkissä hakumalli on: yksi tai useampi kirjain tai kolme numeroa:
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! ! 1 12 !'
Esimerkki
Pystyviiva voi jakaa säännöllisen lausekkeen ei kahteen osaan, vaan mihin tahansa määrään osia:
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! ! ddd'
Esimerkki
Jos pystyviiva on pyöreiden sulkeiden
sisällä, niin 'tai' toimii vain näiden
sulkeiden sisällä.
Esimerkkinä etsitään merkkijonot seuraavan
mallin mukaisesti: alussa on joko 'a',
tai 'b' yksi tai useampi kerta, ja sitten
kaksi kirjainta 'x':
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'! ! ! exx'
Käytännön tehtävät
Annettu merkkijono:
let str = 'aeeea aeea aea axa axxa axxxa';
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
seuraavan mallin mukaisesti: reunoissa on kirjaimet 'a',
ja niiden välissä - joko kirjain 'e' mielivaltainen
määrä kertoja tai kirjain 'x' mielivaltainen
määrä kertoja.
Annettu merkkijono:
let str = 'aeeea aeea aea axa axxa axxxa';
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
seuraavan mallin mukaisesti: reunoissa on kirjaimet 'a',
ja niiden välissä - joko kirjain 'e' kaksi kertaa
tai kirjain 'x' mielivaltainen määrä kertoja.