Signatur
Beschreibung
Die Methode startsWith() prüft, ob ein String mit einer bestimmten Zeichenfolge beginnt. Sie gibt true zurück, wenn das zutrifft, sonst false. Groß- und Kleinschreibung werden dabei unterschieden: "Hallo".startsWith("hallo") liefert false.
Mit dem optionalen Parameter position legen Sie fest, ab welchem Index verglichen werden soll. Damit prüfen Sie, ob ein Präfix an einer bestimmten Stelle im String steht, ohne vorher einen Teilstring mit slice() herauszuschneiden.
Typische Einsatzfälle sind das Prüfen von URL-Schemata (https://), Dateipfaden, Befehlspräfixen (z. B. / in Chat-Befehlen), Schlüsselnamen mit Namensraum-Präfix oder Ländervorwahlen. Im Vergleich zu indexOf(x) === 0 oder einem regulären Ausdruck wie /^x/ ist startsWith() besser lesbar und macht die Absicht sofort klar.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $searchString Pflicht | string | Die Zeichenfolge, nach der am Anfang gesucht wird. Andere Werte werden in einen String umgewandelt (z. B. undefined zu "undefined"). Ein regulärer Ausdruck ist nicht erlaubt und löst einen TypeError aus. |
|
| $position | number | 0 | Startindex, ab dem searchString erwartet wird. Werte unter 0 werden als 0 behandelt, Werte über der Länge als str.length. Nicht ganzzahlige Werte werden abgeschnitten. |
Rückgabewert
true, wenn der String (ab position) mit searchString beginnt, sonst false. Bei leerem searchString immer true.Beispiele
Einfache Präfix-Prüfung
const satz = "Guten Morgen, Welt!";
console.log(satz.startsWith("Guten"));
console.log(satz.startsWith("guten")); // Groß-/Kleinschreibung zählt
console.log(satz.startsWith("Morgen", 6)); // ab Index 6
Sichere URLs herausfiltern
const links = [
"https://example.com",
"http://alt.example.org",
"ftp://files.example.net",
"https://programmierung.net"
];
const sicher = links.filter((url) => url.startsWith("https://"));
console.log(sicher);
Chat-Befehle erkennen
const verarbeiteNachricht = (text) => {
if (!text.startsWith("/")) {
return `Nachricht: ${text}`;
}
const [befehl, ...args] = text.slice(1).split(" ");
return `Befehl "${befehl}" mit Argumenten: ${args.join(", ")}`;
};
console.log(verarbeiteNachricht("Hallo zusammen"));
console.log(verarbeiteNachricht("/kick max grund"));
Groß-/Kleinschreibung ignorieren
const dateiname = "README.md";
const praefix = "readme";
const treffer = dateiname.toLowerCase().startsWith(praefix.toLowerCase());
console.log(treffer);
// Wichtig · Fallstricke
- Keine regulären Ausdrücke:
\"abc\".startsWith(/a/)wirft einenTypeError. Für Muster nutzen Sie/^muster/.test(str). - Groß-/Kleinschreibung: Der Vergleich unterscheidet immer zwischen Groß- und Kleinbuchstaben. Normalisieren Sie beide Seiten bei Bedarf mit
toLowerCase()odertoLocaleLowerCase(). - Leerer Suchstring:
str.startsWith(\"\")liefert immertrue. Das kann bei Benutzereingaben unerwartet sein. - Typumwandlung:
str.startsWith()ohne Argument sucht nach\"undefined\", nicht nach einem leeren String. - Unicode: Verglichen wird auf Ebene der UTF-16-Codeeinheiten. Unterschiedlich normalisierte Zeichen (z. B.
\"é\"als ein Zeichen gegenüber\"e\" + \"\\u0301\") passen nicht zusammen. Gleichen Sie das vorher mitnormalize()an. - Kompatibilität: Wird von allen modernen Browsern und von Node.js 4+ unterstützt. Der Internet Explorer kennt die Methode nicht, dort ist ein Polyfill nötig.