Hilfe bei javascript Aufgabe?
Ich brauche hilfe bei einer Javascript aufgabe:
https://www.jshero.net/koans/regexgroup.html
Schreibe eine Funktion
test
, die feststellt, ob ein String ein doppeltes Wort enthält. Ein Wort soll aus mindestens einem Buchstaben bestehen. Zugrunde liegt das englische Alphabet. Klein- und Großschreibung soll keine Rolle spielen.
Ansätze habe ich leider nicht.
3 Antworten
Werden Worte durch Leerzeichen oder/und Punkte getrennt?
Wenn ja wäre der erste Schritt den String entsprechend zu splitten. Im zweiten Schritt dann alles in Kleinschreibung umwandeln, ggf überflüssigen whitespace (Tabs) entfernen. Im dritten Schritt schauen ob ein Wort doppelt ist. Primitive Methode: den Wort Array durchlaufen mit einem for loop, dabei erstes oder letztes Wort aus dem Array entfernen und danach mit indexOf prüfen ob es sich trotzdem noch im Array finden lässt => dann wäre das Wort mindestens doppelt vorhanden.
(Sonderaufgabe für dich: was passiert wenn ein Wort 3 mal vorhanden ist?)
Bist du sicher dass es nicht lediglich darum geht einen Regex zu bauen der Worte findet? Also anhand der Leerzeichen trennt?
Hallo,
Du musst hier beim Regex beachten, dass "ganze Worte" gefunden werden sollen. Und das anscheinend auch unabhängig ob klein oder gross geschrieben.
Du brauchst also viermal insgesamt \b (Word bounds, einmal um die [] in der Suchgruppe und einmal um die Gruppenreferenz) und den i Modifier
Den Rest musst du selber rausbekommen!
Maximale Erfolge!
Mein Regex-Kungfu war ganz schön eingerostet, aber hier ist mein Vorschlag:
function test(s) {
return /(\b[a-zA-Z]+\b)(?=.*\b\1\b)/i.test(s);
}
Naja, ohne Regex ist es easy, aber lang. Interessant wäre natürlich wie's mit Regex funktioniert wie unter dem Link beschrieben...