Θήκες στη μέθοδο replace στις κανονικές εκφράσεις JavaScript

Όταν εργαζόμαστε με την μέθοδο replace, εάν βάλουμε κάτι σε μια θήκη στην κανονική έκφραση, τότε στη συμβολοσειρά αντικατάστασης μπορούμε να εισαγάγουμε το περιεχόμενο αυτής της θήκης γράφοντας το σύμβολο δολαρίου $ και τον αριθμό της θήκης. Για παράδειγμα, $1 - πρώτη θήκη, $2 - δεύτερη θήκη και ούτω καθεξής.

Γιατί αυτό είναι χρήσιμο και πώς να το χρησιμοποιήσουμε ας το δούμε με παραδείγματα.

Παράδειγμα

Ας βρούμε όλους τους αριθμούς και αντί για αυτούς ας εισάγουμε τους ίδιους αριθμούς, αλλά μέσα σε παρενθέσεις. Για αυτό όλους τους αριθμούς που βρίσκουμε θα αντικαθιστούμε με τους ίδιους, αλλά μέσα σε παρενθέσεις:

javascriptlet str = '1 23 456 xax';
let res = str.replace(/(\d+)/g, '($1)');

Ως αποτέλεσμα στη μεταβλητή θα γραφτεί το εξής:

javascript'(1) (23) (456) xax'

Παράδειγμα

Ας βρούμε όλες τις συμβολοσειρές που αντιπροσωπεύουν αριθμούς με γύρω τους 'x' και ας αντικαταστήσουμε αυτούς τους αριθμούς με τους ίδιους, αλλά με '!' γύρω τους:

javascriptlet str = 'x1x x23x x456x xax';
let res = str.replace(/x(\d+)x/g, '!$1!');

Ως αποτέλεσμα στη μεταβλητή θα γραφτεί το εξής:

javascript'!1! !23! !456! xax'

Παράδειγμα

Ας λύσουμε το ακόλουθο πρόβλημα: δίνονται συμβολοσειρές της μορφής 'aaa@bbb' - γράμματα, μετά @, μετά γράμματα. Πρέπει να ανταλλάξουμε τις θέσεις των γραμμάτων πριν το @ και μετά.

javascriptlet str = 'aaa@bbb ccc@ddd';
let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');

Ως αποτέλεσμα στη μεταβλητή θα γραφτεί το εξής:

javascript'bbb@aaa ddd@ccc'

Πρακτικά προβλήματα

Задание 1

Δίνεται η συμβολοσειρά:

javascriptlet str = '12 34 56 78';

Ανταλλάξτε τις θέσεις των ψηφίων σε όλους τους διψήφιους αριθμούς.

Задание 2

Δίνεται μια συμβολοσειρά με ημερομηνία:

javascriptlet str = '31.12.2025';

Μετατρέψτε αυτήν την ημερομηνία σε '2025.12.31'.