Modül dersleri (2/4)
Temel değiştirme ve "1$"
JavaScript'te String.prototype.replace(regex, replacement) bir işlem gerçekleştirir
desen eşleşmesi ve her eşleşmeyi verilen dizeyle değiştirir. g ile
tüm eşleşmelerin yerine geçeceğini işaretleyin; onsuz, yalnızca ilki. replaceAll
genel davranışı zorlar (ve normal ifadede g bayrağını gerektirir).
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"Değiştirme dizesindeki referanslar
Değiştirme dizesinin içinde bunlar özeldir:
$1,$2, \u2026 -- normal ifadenin numaralandırılmış grubuna geri referans.$<name>-- adlandırılmış gruba geri referans.$&-- maçın tamamı.- `$`` -- text before the match.
$'-- text after the match.$$-- a single literal$.
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"Sırayı ters çevirerek tarihi yeniden biçimlendirin. Regex'in 3 grubu vardır ve
değiştirme dizesine $1, $2, $3 olarak başvuruyorsunuz.
Değiştirmelerde özel referanslar
$1 ve $2'nin yanı sıra, eşleşen metnin tamamını eklemek için $&, onu takip eden tüm metin için $ for all text preceding the match, and$'` kullanabilirsiniz. Bu, JS kodu yazmadan bile zengin değiştirmelere olanak tanır.
Deneyin
Her tarihi YYYY-AA-GG formatında üç grupla (yıl, ay, gün) bulun. Bu şekilde GG/AA/YYYY elde etmek için değiştirmeyi kullanabilirsiniz.
İpucu göster
(...) ile yakalanan üç grup içinde \\d+'yı \\d{4}, \\d{2}, \\d{2} ile değiştirin.
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
'İlk son'u iki adlandırılmış grup olarak 'nome' ve 'cognome' olarak bulun, böylece bunu '$<cognome>, $<nome>' kullanarak 'cognome, nome' olarak yeniden yazabilirsiniz.
İpucu göster
\\s+ ile ayrılmış (?<nome>\\w+) ve (?<cognome>\\w+) kullanın.
3 denemeden sonra çözüm mevcut
Ek zorluk
Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.
İpucu göster
Use two capture groups for last and first name; the replacement will be performed via $2 $1.
3 denemeden sonra çözüm mevcut