Simboolgroepe in JavaScript se gereelde uitdrukkings
Daar is spesiale opdragte wat dit moontlik maak om
heel groepe simbole in een keer te kies. Die opdrag
\d beteken 'n syfer van 0 tot 9.
Die opdrag \w dui op 'n syfer, 'n Latynse
letter of 'n onderstreep-teken. Die opdrag \s
dui op 'n spasie of 'n spasiesimbool:
spasie, reëlomskakeling, tabs. Jy kan
die waarde van die opdrag omkeer deur 'n hoofletter
te skryf: byvoorbeeld, as \d - 'n syfer is,
dan is \D - nie 'n syfer nie.
Voorbeeld
Kom ons vind al die syfers:
let str = '1 12 123';
let res = str.replace(/\d/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'! !! !!!'
Voorbeeld
Herhalingsoperateurs beskou opdrag-groepe as
'n geheel, dit wil sê groeperende hakies is
nie nodig nie. In die volgende voorbeeld lyk die soekpatroon
so: syfer van 0 tot 9
een of meer keer:
let str = '1 12 123 abc @@@';
let res = str.replace(/\d+/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'! ! ! abc @@@'
Voorbeeld
In die volgende voorbeeld lyk die soekpatroon
so: enigiets een of meer keer,
maar nie 'n syfer van 0 tot 9 nie:
let str = '123abc3@@';
let res = str.replace(/\D+/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'123!3!'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so: spasiesimbool een keer:
let str = '1 12 123 abc @@@';
let res = str.replace(/\s/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'1!12!123!abc!@@@'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
NIE 'n spasiesimbool een of meer keer nie.
Alle substringe, geskei deur spasies, sal vervang word
met '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'! ! ! ! !'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
syfer of letter een of meer keer.
Alle substringe wat uit syfers en letters bestaan,
sal vervang word met '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'! ! ! ! @@@'
Voorbeeld
In hierdie voorbeeld lyk die soekpatroon so:
NIE 'n syfer en NIE 'n letter een of meer keer nie.
In ons geval val
'@@@' en alle spasies (dit is ook
nie syfers of letters nie) onder hierdie definisie. Let op
dat daar aan die einde een '!' is - daarin is
die string ' @@@' - met 'n
spasie vooraan - omskep:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g, '!');
As gevolg hiervan sal die volgende in die veranderlike weggeskryf word:
'1!12!123!Abc!'
Praktiese take
Gegee 'n string:
let str = 'a1a a2a a3a a4a a5a aba aca';
Skryf 'n regex wat die string sal vind,
waarin aan die kante is daar letters 'a',
en tussen hulle een syfer.
Gegee 'n string:
let str = 'a1a a22a a333a a4444a a55555a aba aca';
Skryf 'n regex wat die string sal vind,
waarin aan die kante is daar letters 'a',
en tussen hulle enige aantal syfers.
Gegee 'n string:
let str = 'aa a1a a22a a333a a4444a a55555a aba aca';
Skryf 'n regex wat die string sal vind,
waarin aan die kante is daar letters 'a',
en tussen hulle enige aantal syfers (insluitend
selfs nul syfers, dit wil sê die string 'aa').
Gegee 'n string:
let str = 'avb a1b a2b a3b a4b a5b abb acb';
Skryf 'n regex wat die volgende string sal vind:
aan die kante is daar letters
'a' en 'b', en tussen hulle - nie
'n syfer en nie 'n spasie nie.
Gegee 'n string:
let str = 'ave a#b a2b a$b a4b a5b a-b acb';
Skryf 'n regex wat die volgende string sal vind:
aan die kante is daar letters
'a' en 'b', en tussen hulle - nie
'n letter, nie 'n syfer en nie 'n spasie nie.
Gegee 'n string:
let str = 'ave a#a a2a a$a a4a a5a a-a aca';
Skryf 'n regex wat alle spasies sal vervang
met '!'.