Lecții din modul (2/4)
Înlocuire de bază și `$1`
În JavaScript, String.prototype.replace(regex, replacement) efectuează a
potrivirea modelului și înlocuiește fiecare potrivire cu șirul dat. Cu g
flag-ul înlocuiește toate meciurile; fara el, doar primul. replaceAll
forțează comportamentul global (și necesită indicatorul g pe regex).
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"Referințe în șirul de înlocuire
În interiorul șirului de înlocuire, acestea sunt speciale:
$1,$2, \u2026 -- referință la grupul numerotat al expresiei regex.$<name>-- referință la grupul numit.$&-- întregul meci.- `$`` -- text inainte meciului.
$'-- text după meci.$$-- un singur literal$.
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"Reformatați data inversând ordinea. Regex are 3 grupuri, iar în
șir de înlocuire le referiți ca $1, $2, $3.
Referințe speciale în înlocuiri
Pe lângă $1 și $2, puteți folosi $& pentru a insera întregul text potrivit, $ for all text preceding the match, and$'` pentru tot textul care îl urmează. Acest lucru permite înlocuiri bogate chiar și fără a scrie cod JS.
Încearcă
Găsiți fiecare dată în formatul AAAA-LL-ZZ cu trei grupuri (an, lună, zi). În acest fel, puteți folosi înlocui pentru a obține ZZ/LL/AAAA.
Afișează indiciu
Înlocuiți \\d+ cu \\d{4}, \\d{2}, \\d{2} în cadrul a trei grupuri capturate cu (...).
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți „primul ultimul” ca două grupuri numite „nome” și „cognome”, astfel încât să îl puteți rescrie ca „cognome, nome” folosind „$<cognome>, $<nome>”.
Afișează indiciu
Folosiți (?<nume>\\w+) și (?<cognome>\\w+) separate prin \\s+.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.
Afișează indiciu
Use two capture groups for last and first name; the replacement will be performed via $2 $1.
Soluție disponibilă după 3 încercări