C:\Users\Iris\Desktop\javascript string contains.png

Javascript string contains – Tipps und Stolperfallen

Enthält ein Text bestimmte Zeichen oder Buchstaben? Diese Standardaufgabe für Programmierer gibt es natürlich auch bei Javascript – string contains-Methoden oder ähnliche heißt sie dort aber nicht.

Kurze Javascript-History

In der Webprogrammierung hat sich Javascript als verbreitete Programmiersprache durchgesetzt. Javascript unterstützen die meisten gängigen Browser nativ – man muss also nichts mehr installieren.

In Webseiten enthaltener Javascript-Code wird ohne weitere Umwege vom jeweiligen Webbrowser ausgeführt und umgesetzt.

In den ersten Implementierungen von Javascript war eine einfache Vergleichsfunktion für ein javascript string contains nicht direkt verfügbar. Programmierer und Webentwickler mussten eigene Methoden schreiben, um einen Vergleich von Ausdrücken wie Strings anzustellen.

Was ist „Javascript string contains“?

Javascript string contains ist grundsätzlich eine Vergleichsfunktion – wörtlich übersetzt heißt es „… enthält Zeichenkette“. Meist ist damit gemeint, dass ein Text einen anderen enthält. Ein mögliches Beispiel wäre die Frage, ob der Text „Beispieltext“ den Text „Beispiel“ enthält.

Der Pseudocode könnte etwa lauten: Enthält „Beispieltext“ den Untertext „Beispiel“? Worauf die Antwort dann lauten würde „Wahr“ (true).

Verfahren zur Prüfung von Ausdrücken

Erst in der zweiten größeren Überarbeitung von Javascript, auch als ECMAScript 2015 oder ES6 bzw. ECMAScript 6 bezeichnet, sind weitere Features hinzugekommen.

Dies bedeutet also auch, dass viele ältere Browser wie Internet Explorer einige Statements nicht vollständig unterstützen. Ist deren Benutzung und Ausführbarkeit wichtig, so müssen Webentwickler spezielle Transpiler oder sogenannte „shim-libraries“ zusätzlich verwenden.

Beachtung von Groß- und Kleinschreibung

Bei Verwendung der eingebauten Methoden der „javascript string contains“-Verfahren ist zu beachten, dass einige case-sensitiv und andere case-insensitiv sind. Dies bedeutet, dass die Groß-/Kleinschreibung an manchen Stellen (nicht) beachtet wird.

Will man beispielsweise prüfen, ob der Begriff „Puffer“ in „Kartoffelpuffer“ enthalten ist, wird je nach Berücksichtigung der Großbuchstaben ein unterschiedliches Ergebnis entstehen.

Eingebettete Methoden in Javascript

In neueren Implementierungen ab ES6 lässt sich ein Vergleich recht simpel darstellen, wenn man ECMAScript 6 introduced String.prototype.includes benutzt.

Const string = “Kartoffelpuffer”;
Const substring = “Kartoffel”;

console.log(string.includes(substring)); // true

Hier wird bei einem übereinstimmenden Ergebnis der Boolean „true“ zurückgeliefert.

javascript string contains

Zu beachten ist, dass die includes-Funktion case-sensitiv ist, also nur bei korrekter Schreibweise positiv ausfällt. Ist dies nicht gewünscht, muss der Entwickler vor einem Check die Strings in Kleinbuchstaben umwandeln.

Verwendung von javascript string contains in Scripten für alte Browser

In pre-ES6 Umgebungen (wichtig u.a. für Internet Explorer) lässt sich ein javascript string contains indirekt umsetzen.

Hier kann „String.prototype.indexOf“ verwendet werden, welches bei Abwesenheit des geprüften Strings bzw. Substrings ein „-1“ zurückgibt.

Die Abwesenheit dieses Rückgabewertes kann dann auf einen Rückgabewert „True“ evaluiert werden.

Var string = “Kartoffelpuffer”;
Var substring = “Kartoffel”;

console.log(string.indexOf(substring) !== -1); // true

Stolperfallen

Das Verfahren, auf enthaltene Strings zu prüfen, ist nur bei Buchstabenketten sicher.

Je nach verwendeter Sprache können schon Zahlen dafür sorgen, dass der Vergleich fehlschlägt. Auch Leerzeichen und sonstige Sonderzeichen (deutsche Umlaute!) können Probleme verursachen.

Vor einem „javascript string contains“-Vergleich sollten Entwickler daher prüfen, ob derartige Zeichen enthalten sind.

Eine Alternative zur eingebauten Sprachkonstrukten, die vom verwendeten Webbrowser abhängig sind, ist es, eigene Algorithmen zu verwenden.

Hier ist der sogenannte KMP (Knuth-Morris-Pratt)-Algorithmus recht verbreitet, der auch in Javascript implementiert wurde. Dieser wurde 1977 publiziert, ist gut verstanden und in einer Vielzahl von Sprachen implementiert. Dies bedeutet, dass Entwickler auf eine Vielzahl an Refernzbeispielen zurückgreifen können.

Fazit: Javascript string contains

Der Vergleich von Ausdrücken in Javascript ist stark von dem ausführendem System, meist einem Webbrowser, abhängig. Der Entwickler muss sich über die unterstützten Funktionsaufrufe und Groß/-Kleinschreibung Gedanken machen. Auch ist das Handling von enthaltenen Sonderzeichen zu bedenken und abzuschätzen.



FavoriteLoading Tipp meinen Favoriten hinzufügen (setzt Cookie, mehr unter Datenschutz)