Mit den beiden Methoden “indexOf” und “includes” kann man mit Javascript einen String durchsuchen und feststellen, ob ein Suchbegriff enthalten ist. Da funktioniert in der Regel sehr gut, wichtig ist allerdings, dass die Methode nur Strings oder Arrays akzeptiert. Sollte der Suchbegriff oder der ursprüngliche String eine Zahl sein, gibt der Browser diese Fehlermeldung aus: “Uncaught TypeError: string.indexOf is not a function”.
In der Regel fällt das nicht direkt auf, wenn der Inhalt von Suchwort oder zu durchsuchender Variable nicht durchweg bekannt sind. Eine einfache Lösung ist daher, vor der Suche die beiden Elemente in einen String umzuwandeln. Dies umgeht die Problematik, dass indexOf in Javascript nur Strings innerhalb von Strings durchsuchen kann. Wandelt man die Variable vorher in einen String, funktioniert die Suche ohne den Fehler “Uncaught TypeError: string.indexOf is not a function”.
Um mit Javascript eine Variable in einen String umzuwandeln, reicht dieser Code:
let suchstringneu = String(suchstring);
let suchbegriffneu = String(suchbegriff);
Die Abfrage mit indexOf, ob “suchstringneu” den Text “suchbegriffneu” enthält, sollte jetzt ohne die “Uncaught TypeError” Fehlermeldung durchlaufen.