Sümbolite grupid JavaScripti regulaaravaldistes
On olemas spetsiaalsed käsud, mis võimaldavad
valida korraga terveid sümbolite gruppe. Käsk
\d tähendab numbrit 0 kuni 9.
Käsk \w tähistab numbrit, ladina tähte
või allakriipsu. Käsk \s
tähistab tühikut või tühikumuudet:
tühiku, reavahetuse, tabeldusmärgi. Saab
inverteerida käsuväärtust, kirjutades suure
tähe: näiteks kui \d - number,
siis \D - mitte number.
Näide
Leiame kõik numbrid:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! !! !!!'
Näide
Kordusoperaatorid peavad käske-rühmi
ühtseks tervikuks, see tähendab, et grupeerivad sulud
ei ole vajalikud. Järgmises näides näeb otsimismall
välja selline: number 0 kuni 9
üks või mitu korda:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! abc @@@'
Näide
Järgmises näides näeb otsimismall välja
järgmine: kõik mis tahes üks või mitu korda,
aga mitte number 0 kuni 9:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'123!3!'
Näide
Selles näites näeb otsimismall välja järgmine: tühikumuut üks kord:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'1!12!123!abc!@@@'
Näide
Selles näites näeb otsimismall välja järgmine:
MITTE tühikumuut üks või mitu korda.
Kõik tühikutega eraldatud alamjadad asendatakse
väärtusega '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! ! !'
Näide
Selles näites näeb otsimismall välja järgmine:
number või täht üks või mitu korda.
Kõik numbritest ja tähtedest koosnevad alamjadad
asendatakse väärtusega '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'! ! ! ! @@@'
Näide
Selles näites näeb otsimismall välja järgmine:
MITTE number ja MITTE täht üks või mitu korda.
Selle definitsiooni alla langeb meie puhul
'@@@' ja kõik tühikud (need ju ka
ei ole numbrid ega tähed). Pane tähele
seda, et lõpus on üks '!' - sellesse
muudeti jada ' @@@' - koos
eelneva tühikuga:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
Tulemusena kirjutatakse muutujasse järgmine:
'1!12!123!Abc!'
Praktilised ülesanded
Antud jada:
let str = 'a1a a2a a3a a4a a5a aba aca';
Kirjutage regulaaravaldis, mis leiab jadad,
milles servades on tähed 'a',
ja nende vahel on üks number.
Antud jada:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Kirjutage regulaaravaldis, mis leiab jadad,
milles servades on tähed 'a',
ja nende vahel on suvaline arv numbreid.
Antud jada:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Kirjutage regulaaravaldis, mis leiab jadad,
milles servades on tähed 'a',
ja nende vahel on suvaline arv numbreid (sealhulgas
ka null numbrit, see tähendab jada 'aa').
Antud jada:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Kirjutage regulaaravaldis, mis leiab jadad
järgmisel kujul: servades on tähed
'a' ja 'b', ja nende vahel - mitte
number ega tühik.
Antud jada:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Kirjutage regulaaravaldis, mis leiab jadad
järgmisel kujul: servades on tähed
'a' ja 'b', ja nende vahel - mitte
täht, mitte number ega tühik.
Antud jada:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Kirjutage regulaaravaldis, mis asendab kõik tühikud
väärtusega '!'.