Lommer i replace-metoden i JavaScript regex
Ved arbeid med metoden replace, hvis
vi legger noe i en lomme i regexen, så
kan vi i erstatningsteksten sette inn innholdet
fra denne lommen ved å skrive dollartegnet $
og lommenummeret. For eksempel, $1 - den første
lomma, $2 - den andre lomma, og så videre.
La oss se på eksempler for å forstå hvorfor dette er nyttig og hvordan man bruker det.
Eksempel
La oss finne alle tall og erstatte dem med de samme tallene, men inni parenteser. For å gjøre dette vil vi erstatte alle funnet tall med seg selv, men i parentes:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Resultatet i variabelen vil bli følgende:
'(1) (23) (456) xax'
Eksempel
La oss finne alle strenger som representerer
tall med x'er rundt og erstatte disse
tallene med seg selv, men med '!' tegn rundt:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Resultatet i variabelen vil bli følgende:
'!1! !23! !456! xax'
Eksempel
La oss løse følgende oppgave: gitt strenger
av typen 'aaa@bbb' - bokstaver, deretter krøllalfa,
deretter bokstaver. Det er nødvendig å bytte plass på bokstavene
før @ og etter.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Resultatet i variabelen vil bli følgende:
'bbb@aaa ddd@ccc'
Praktiske oppgaver
Gitt en streng:
let str = '12 34 56 78';
Bytt om sifrene i alle tosifrede tall.
Gitt en streng med en dato:
let str = '31.12.2025';
Konverter denne datoen til '2025.12.31'.