Taskut replace-metodissa JavaScriptin säännöllisissä lausekkeissa
Kun työskentelet replace-metodin kanssa, jos
laitsemme jotain taskuun säännöllisessä lausekkeessa,
korvausmerkkijonossa voimme lisätä tämän
taskun sisällön kirjoittamalla dollar-merkkin $
ja taskun numeron. Esimerkiksi, $1 - ensimmäinen
tasku, $2 - toinen tasku ja niin edelleen.
Mitä varten tätä tarvitaan ja kuinka sitä käytetään katsotaan esimerkkien avulla.
Esimerkki
Etsitään kaikki numerot ja niiden tilalle laitamme samat numerot, mutta pyöreissä suluissa. Tätä varten kaikki löydetyt numerot korvaamme niillä itsellään, mutta suluissa:
let str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');
Tuloksena muuttujaan kirjoitetaan seuraava:
'(1) (23) (456) xax'
Esimerkki
Etsitään kaikki merkkijonot, jotka edustavat
numeroita x-kirjaimien ympäröiminä ja korvataan nämä
numeroit samalla, mutta '!'-merkeillä ympäröitynä:
let str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');
Tuloksena muuttujaan kirjoitetaan seuraava:
'!1! !23! !456! xax'
Esimerkki
Ratkaistaan seuraava tehtävä: annettu merkkijonoja
muodossa 'aaa@bbb' - kirjaimia, sitten @-merkki,
sitten kirjaimia. Kirjaimet ennen @-merkkiä ja jälkeen
on vaihdettava paikoillaan.
let str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');
Tuloksena muuttujaan kirjoitetaan seuraava:
'bbb@aaa ddd@ccc'
Käytännön tehtävät
Annettu merkkijono:
let str = '12 34 56 78';
Vaihda numeroiden paikat kaikissa kaksinumeroisissa luvuissa.
Annettu merkkijono päivämäärällä:
let str = '31.12.2025';
Muunna tämä päivämäärä muotoon '2025.12.31'.