Aufgaben-Python/courses/javascript/07_regex_und_textverarbeitung/aufgabe.js

61 lines
2.8 KiB
JavaScript

/**
* 🌐 JS 07: REGULÄRE AUSDRÜCKE & TEXTVERARBEITUNG 🌐
* ==================================================
* RegExp-Muster, Flags, Metazeichen, Quantifizierer
* und praktische Methoden (test, match, replace).
*/
// 🎯 TEILZIEL 1 (TODO 1): istGueltigeEmail(email)
// Prüfe, ob der gegebene String eine syntaktisch gültige E-Mail-Adresse ist.
// Kriterien:
// - Startet mit mind. 1 Zeichen (Buchstaben, Ziffern, ., _, %, +, -)
// - Enthält genau ein '@'
// - Domain-Teil mit mind. 1 Zeichen (Buchstaben, Ziffern, ., -)
// - Top-Level-Domain (TLD) mit mind. 2 Buchstaben am Ende (z. B. .de, .com, .info)
// Rückgabe: true wenn gültig, sonst false.
function istGueltigeEmail(email) {
// TODO: Regex-Muster definieren und mit .test() prüfen
return false;
}
// 🎯 TEILZIEL 2 (TODO 2): findeTelefonnummern(text)
// Finde alle Telefonnummern in einem beliebigen Fließtext.
// Unterstütze Formate wie "+49 170 1234567", "0171-1234567", "030 / 123456" oder "+49(0)30 123456".
// Rückgabe: Ein Array mit allen gefundenen Telefonnummern-Strings (oder [] wenn keine gefunden).
function findeTelefonnummern(text) {
// TODO: Regex mit Global-Flag 'g' erstellen und text.match(regex) nutzen
return [];
}
// 🎯 TEILZIEL 3 (TODO 3): extrahiereHashtags(text)
// Extrahiere alle Social-Media-Hashtags aus einem Text (z. B. "#javascript", "#webdev2024").
// Ein Hashtag beginnt mit '#' gefolgt von einem oder mehreren Wortzeichen (Buchstaben, Zahlen, Unterstrich).
// Rückgabe: Array aller Hashtag-Strings inklusive Raute '#' (oder [] wenn keine vorhanden).
function extrahiereHashtags(text) {
// TODO: Hashtags mit Regex matchen und als Array zurückgeben
return [];
}
// 🎯 TEILZIEL 4 (TODO 4): maskiereKreditkarte(text)
// Maskiere 16-stellige Kreditkartennummern aus Sicherheitsgründen im Text.
// Die Nummern können mit Bindestrichen ("1234-5678-9012-3456"), Leerzeichen ("1234 5678 9012 3456")
// oder durchgehend ("1234567890123456") geschrieben sein.
// Ersetze jede 16-stellige Kreditkarte durch das Format: "****-****-****-XXXX" (wobei XXXX die letzten 4 Ziffern sind).
// Rückgabe: Der bereinigte/maskierte Text-String.
function maskiereKreditkarte(text) {
// TODO: Mit regex.replace() und Capturing Group $1 für die letzten 4 Ziffern maskieren
return "";
}
// 🎯 TEILZIEL 5 (TODO 5): istStarkesPasswort(passwort)
// Validiere, ob ein Passwort den modernen Sicherheitsanforderungen entspricht:
// 1. Mindestens 8 Zeichen lang
// 2. Mindestens ein Kleinbuchstabe (a-z)
// 3. Mindestens ein Großbuchstabe (A-Z)
// 4. Mindestens eine Zahl (0-9)
// 5. Mindestens ein Sonderzeichen (z. B. ! @ # $ % ^ & * ( ) _ + - = [ ] { } ; ' : " \ | , . < > / ? ~)
// Rückgabe: true wenn stark, sonst false.
function istStarkesPasswort(passwort) {
// TODO: Bedingungen mit Regex prüfen
return false;
}