«Enthält dieser String dieses Wort?» — eine Frage, die jeden Anfänger quält
\nSie schreiben ein Skript, erhalten eine Antwort vom Server oder filtern einfach eine Liste von Städten. Und plötzlich stehen Sie vor einem Rätsel: Wie prüft man, ob ein String einen bestimmten Teilstring in JavaScript enthält? Diese Frage ist ein echter Hit auf Stack Overflow, Tausende von Entwicklern stellen sie. Und das zu Recht: Strings sind die Grundlage jeder Anwendung, und die Fähigkeit, schnell Teilstrings in ihnen zu finden, ist eine grundlegende Fertigkeit.
\nIn diesem Tutorial behandeln wir drei funktionierende Methoden: von der modernsten (und von allen geliebten) bis zur klassischen mit Extras. Sie erfahren, wann Sie welche Methode verwenden sollten, und lernen, Code zu schreiben, den Sie bei einem Vorstellungsgespräch zeigen können.
\n\nMethode Nr. 1: includes() — Einfachheit und Eleganz
\nWenn Sie Code in modernem JavaScript (ES6 und höher) schreiben, ist includes() Ihr bester Freund. Diese Methode gibt true oder false zurück und liest sich wie eine normale englische Frage: «Enthält der String den Teilstring?».
Syntax
\nstring.includes(searchString, position)\n- \n
searchString— das, wonach wir suchen (erforderlich). \n position— optionaler Parameter, ab welchem Index die Suche beginnen soll (Standardwert 0). \n
Beispiel in Aktion
\nconst message = "Hallo, Welt! JavaScript ist cool.";\n\nconsole.log(message.includes("JavaScript")); // true\nconsole.log(message.includes("Python")); // false\nconsole.log(message.includes("Welt", 10)); // false (Suche ab dem 10. Zeichen)\n\nBeachten Sie: Die Methode ist groß-/kleinschreibungsabhängig. "javascript" und "JavaScript" sind unterschiedliche Strings. Wenn Sie die Groß-/Kleinschreibung ignorieren müssen, wandeln Sie einfach beide Strings in Kleinbuchstaben um:
const text = "Wir lernen JavaScript";\nconst keyword = "javascript";\n\nconsole.log(text.toLowerCase().includes(keyword.toLowerCase())); // true\n\n\nWann verwenden
\n- \n
- Formularvalidierung (Überprüfung einer E-Mail auf "@"). \n
- Suche in einer Liste (Filterung von Produkten). \n
- Jede einfache Prüfung auf Vorhandensein. \n
Methode Nr. 2: indexOf() — ein Klassiker, der nie stirbt
\nVor dem Erscheinen von includes() verwendeten alle indexOf(). Es sagt nicht nur «ja/nein», sondern gibt den Index des ersten Vorkommens des Teilstrings zurück. Wenn der Teilstring nicht gefunden wird, gibt es -1 zurück.
Syntax
\nstring.indexOf(searchValue, fromIndex)\n\nBeispiel
\nconst sentence = "Ich liebe JavaScript und Python.";\n\nconsole.log(sentence.indexOf("liebe")); // 2\nconsole.log(sentence.indexOf("Ruby")); // -1\n\n// Prüfung auf Vorhandensein\nif (sentence.indexOf("JavaScript") !== -1) {\n console.log("Ja, der String enthält JavaScript!");\n}\n\n\nKniffliger Punkt: Warum nicht !== -1?
\nViele Anfänger schreiben if (str.indexOf("word")) — und das ist ein Fehler. Wenn sich der Teilstring ganz am Anfang befindet (Index 0), wird die Bedingung if (0) als false gewertet. Vergleichen Sie immer mit -1.
Wann indexOf() anstelle von includes() verwenden
\n- \n
- Wenn Sie den Index des Anfangs des Teilstrings benötigen (z. B. um einen Teil des Strings auszuschneiden). \n
- Arbeit mit altem Code (IE und alte Browserversionen). \n
- Wenn Sie alle Vorkommen finden müssen (in einer Schleife mit Änderung von
fromIndex). \n
Methode Nr. 3: search() und RegExp — wenn Sie Flexibilität brauchen
\nWas aber, wenn Sie nicht nur ein Wort, sondern ein Muster finden müssen? Zum Beispiel «alle Wörter, die mit "JS" beginnen» oder «eine Telefonnummer im Format +7-xxx-xxx-xx-xx». Hier kommen reguläre Ausdrücke und die Methode search() zur Hilfe.
Syntax
\nstring.search(regexp)\n
Blogs
Buchempfehlungen
Lesen Sie auch
Laravel Paket mit Composer entfernen: Schritt-für-Schritt-Anleitung
Rust: Funktional oder OOP? Den Stil für idealen Code wählen
Refactoring von Legacy-Code in Kotlin: Von A bis Z
Enterprise Rust: Überleben und Gedeihen in großen Projekten
Gehälter von TypeScript-Entwicklern in Russland: Marktüberblick 2025