Modulelessen (3/4)
Vervangen door een terugbelverzoek
Als een vervangende string niet genoeg is, geef dan een functie door: BESCHERMD_INLINE_0. Er wordt een terugbelverzoek ingediend voor elke wedstrijd en de geretourneerde waarde wordt de vervanging.
'prezzi: 10 20 30'.replace(/\d+/g, (m) => Number(m) * 1.22);
// "prezzi: 12.2 24.4 36.6" (22% VAT)Terugbelargumenten
str.replace(regex, (match, p1, p2, ..., offset, original, groups) => ...);match-- de hele wedstrijd.p1,p2, \u2026 -- de vastgelegde groepen op volgorde.offset-- index van de overeenkomst in de originele string.original-- de hele reeks.groups-- object met de benoemde groepen (indien aanwezig).
'2024-03-15'.replace(/(\d{4})-(\d{2})-(\d{2})/, (_, a, m, g) => `${g}/${m}/${a}`);
// "15/03/2024"De callback geeft u willekeurige macht: parseren, opzoeken, conversie, HTML ontsnappen aan alles wat een statische string niet kan doen.
Geavanceerde argumenten bij vervangende callbacks
De callback-functie ontvangt verschillende argumenten: de volledige match, elke vastgelegde groep, de offset van de match binnen de hele tekst en de originele invoerreeks. Dit maakt geavanceerde contextgebaseerde transformatielogica mogelijk.
Probeer het
Zoek elk geheel getal in de tekst. (Ter vervanging zou je `(m) => Getal(m) * 2` doorgeven om het te verdubbelen.)
Toon hint
Gebruik \\d+ (een of meer cijfers) om elk geheel getal als één overeenkomst vast te leggen.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Vind elke e-mail (vereenvoudigde vorm: letters/cijfers/punten/onderstrepingstekens @ domein). Op deze manier kan een terugbelactie het bericht redigeren naar `***@domein`.
Toon hint
Verbreed de klasse naar [\\w.]+ om punten in de gebruikersnaam en het domein te accepteren.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Match every word consisting of letters in the text, so it can be transformed to uppercase via a callback.
Toon hint
Vind eenvoudige letters met [a-zA-Z]+.
Oplossing beschikbaar na 3 pogingen