it-praxisportal/courses/javascript/07_regex_und_textverarbeitung
2026-08-30 10:42:17 +02:00
..
aufgabe.js Vollständiger Ausbau des JavaScript & TypeScript Curriculums auf 16 Module (4 Lehrpfade: ES6 Essentials, Moderne Datenmodelle & OOP, DOM & Web APIs, Architecture & TypeScript) 2026-08-30 10:42:17 +02:00
index.html Vollständiger Ausbau des JavaScript & TypeScript Curriculums auf 16 Module (4 Lehrpfade: ES6 Essentials, Moderne Datenmodelle & OOP, DOM & Web APIs, Architecture & TypeScript) 2026-08-30 10:42:17 +02:00
musterloesung.js Vollständiger Ausbau des JavaScript & TypeScript Curriculums auf 16 Module (4 Lehrpfade: ES6 Essentials, Moderne Datenmodelle & OOP, DOM & Web APIs, Architecture & TypeScript) 2026-08-30 10:42:17 +02:00
README.md Vollständiger Ausbau des JavaScript & TypeScript Curriculums auf 16 Module (4 Lehrpfade: ES6 Essentials, Moderne Datenmodelle & OOP, DOM & Web APIs, Architecture & TypeScript) 2026-08-30 10:42:17 +02:00
test_aufgabe.js Vollständiger Ausbau des JavaScript & TypeScript Curriculums auf 16 Module (4 Lehrpfade: ES6 Essentials, Moderne Datenmodelle & OOP, DOM & Web APIs, Architecture & TypeScript) 2026-08-30 10:42:17 +02:00

🌐 JS 07: Reguläre Ausdrücke & Textverarbeitung

Willkommen zu Modul 07 des JavaScript-Kurses! In diesem Modul lernst du die Kunst des Pattern Matchings und der Textanalyse mit Regulären Ausdrücken (RegExp).


🎯 Lernziele

Nach diesem Modul kannst du:

  1. Reguläre Ausdrücke (RegExp) in JavaScript sowohl als Literal (/muster/flags) als auch über den Konstruktor (new RegExp(...)) erstellen.
  2. Flags wie g (global), i (case-insensitive) und m (multiline) gezielt steuern.
  3. Metazeichen (\d, \w, \s, ., ^, $) und Quantifizierer (+, *, ?, {min,max}) souverän kombinieren.
  4. Strings mit regex.test() validieren und mit str.match() Fundstellen extrahieren.
  5. Texte mit str.replace() und Capturing Groups ($1, $2) formatieren und sensible Daten maskieren.
  6. Komplexe Validierungsregeln wie Passwort- und E-Mail-Prüfungen sauber umsetzen.

💡 Theoretische Grundlagen

1. Die zwei Wege zur RegExp-Erstellung

// 1. Literal (schnell, statisch kompiliert, Standardfall):
const regexLiteral = /^[A-Z][a-z]+$/;

// 2. RegExp-Objekt (dynamisch, erlaubt Variablen im Suchmuster):
const userKeyword = "admin";
const regexDynamic = new RegExp(`^${userKeyword}$`, "i");

2. Metazeichen-Übersicht

Metazeichen Bedeutung Beispiel-Treffer
\d Ziffer (0-9) "5", "9"
\D Keine Ziffer "a", "!"
\w Wortzeichen ([a-zA-Z0-9_]) "x", "7", "_"
\W Kein Wortzeichen " ", "@", "-"
\s Whitespace (Leerzeichen, Tab, Umbruch) " ", "\t", "\n"
. Beliebiges Zeichen (außer Umbruch) "a", "8", "%"
^ Textanfang /^Start/
$ Textende /Ende$/

3. Quantifizierer (Häufigkeiten)

Quantifizierer Bedeutung Beispiel
+ Mindestens 1 Mal (1 bis unendlich) \d+ matcht "1234"
* 0 bis unendlich (optional) a* matcht "" oder "aaa"
? 0 oder 1 Mal (optional) https? matcht "http" & "https"
{n} Exakt n Mal \d{4} matcht "2024"
{min,max} Zwischen min und max Mal \d{2,4}
{min,} Mindestens min Mal .{8,} (mind. 8 Zeichen)

4. Capturing Groups & Maskierung mit replace

Runde Klammern ( ... ) bilden Gruppen. Im Ersetzungs-String kann mit $1, $2 usw. darauf zugegriffen werden:

// Telefonnummer formatieren:
const nummer = "01711234567";
const formatiert = nummer.replace(/(\d{4})(\d+)/, "$1-$2");
console.log(formatiert); // "0171-1234567"

🕵️ Didaktische Analogie: Der Muster-Detektiv & Schablonen-Scanner

Ein Regulärer Ausdruck ist wie ein Röntgengerät mit Lochmaske:

  • Du legst das Dokument (den Fließtext) auf den Scanner.
  • Die Lochmaske blendet alle irrelevanten Wörter aus.
  • Nur Abschnitte, die exakt in die Aussparungen passen (z. B. 4er-Zahlenblöcke für Kreditkarten oder das @-Zeichen mit Domain), leuchten grün auf.

🎯 Aufgabenübersicht in aufgabe.js

  1. TODO 1: istGueltigeEmail(email):
    • Prüft E-Mails auf das Format name@domain.tld (mind. 2-stellige TLD).
  2. TODO 2: findeTelefonnummern(text):
    • Findet Telefonnummern wie +49 170 1234567, 0171-1234567 etc.
  3. TODO 3: extrahiereHashtags(text):
    • Findet alle Social-Media-Tags (#hashtag).
  4. TODO 4: maskiereKreditkarte(text):
    • Anonymisiert 16-stellige Kreditkartennummern zu ****-****-****-1234.
  5. TODO 5: istStarkesPasswort(passwort):
    • Prüft Passwortstärke (mind. 8 Zeichen, Klein-, Großbuchstaben, Ziffer, Sonderzeichen).

🧪 Tests ausführen

Führe die Testsuite in der Web-IDE oder lokal aus:

# In der Web-IDE: Klicke auf 'Code ausführen & testen'