Code
// TT.MM.JJJJ mit benannten Gruppen
const DATE_RE = /(?<d>\d{2})\.(?<m>\d{2})\.(?<y>\d{4})/g;
// Alle Treffer mit Gruppen und Index
const findDates = (text) =>
[...text.matchAll(DATE_RE)].map(({ groups, index }) => ({ ...groups, index }));
// Ersetzen per Callback: TT.MM.JJJJ -> JJJJ-MM-TT
const toIsoDates = (text) =>
text.replace(DATE_RE, (_, d, m, y) => `${y}-${m}-${d}`);
// Nutzereingabe als Literal suchen (Sonderzeichen escapen)
const escapeRegex = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
// Callback verhindert, dass $& / $1 im Ersatztext interpretiert werden
const replaceLiteral = (text, search, repl) =>
text.replace(new RegExp(escapeRegex(search), 'gi'), () => repl);
const txt = 'Start 01.03.2024, Ende 15.04.2024 (Preis: 9.99$)';
console.log(findDates(txt));
console.log(toIsoDates(txt));
console.log(replaceLiteral(txt, '9.99$', '12,50 €'));
Häufige Fragen
Darf ich dieses Snippet kopieren und produktiv einsetzen?
Ja — alle Code-Beispiele auf programmierung.net dürfen frei kopiert und angepasst werden. Prüfe vor dem Produktiv-Einsatz immer Edge-Cases (leere Eingaben, Encoding, Fehlerbehandlung) und die Lizenzvorgaben eingebundener Bibliotheken.
Welche JavaScript-Version wird vorausgesetzt?
Snippets zielen auf aktuelle, stabile JavaScript-Versionen. Versionsabhängige Features werden im Code oder in der Beschreibung ausgewiesen.
Wo finde ich weitere JavaScript-Snippets?
In der Seitenleiste siehst du alle Snippets dieser Sprache. Oder gehe zur JavaScript-Übersicht.