A JavaScript error occurred in the main process?
Bitte um eure Hilfe, ich kann mein Programm zur Unterrichtsvorbereitung nicht öffnen.
2 Antworten
Es ist der Pfad Name der Ärger macht und ich kann voll und ganz verstehen warum. Tut mir leid das sagen zu müssen aber der Datei Pfad ist grottig. Meine Vermutung ist, das es an den ganzen Zeichen wie Ausrufezeichen, Bindestriche, Klammern, Leerzeichen und eckigen Klammern liegt. Ich weiß jetzt nicht wie viel davon von dir ist aber ich würde von hinten vorne nach hinten aufräumen und durch testen. Zuerst hätte ich aus „Startklar! 9R-M - Unterrichtsmanager Plus auf USB-Stick (Cornelsen)“ das gemacht „Startklar_Unterrichtsmanager_Plus_auf_USB_Stick“. Und wenn das nicht funktioniert Block für Block ausgetauscht.
Der Pfad wäre ansich kein Problem . (Außer das er nich besonders schön ist, ist er trotzdem legitim)
Das Problem ist die falsche Methodik um Strings zu vergleichen.
.match() statt if (...==...)
Du benutzt einen Pfad innerhalb einer RegularExprssion, ohne Sonderzeichen zu maskieren .
- https://www.threesl.com/blog/special-characters-regular-expressions-escape/
- https://www.regular-expressions.info/characters.html
Dein Pfad enthält "unescapte" Steuerzeichen: \[].-
Wenn Du nicht Vorhersagen kannst, welche Steuerzeichen in einem automatisch erzeugten Suchpattern enthalten sind kannst Du diese mit einer kleinen Funktion automatisch escapen/maskieren:
function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
...oder...
Ich vermute mal Du wolltest es ganz elegant machen und hast einfach zu "hoch" gegriffen:
Pfad1.match(Pfad2);
Pfad1.test(Pfad2);
...dergleichen ist schlicht übertrieben. (Auch String-Methoden verwenden implizit RegEx-Pattern)
...aber weshalb verwendest Du überhaupt match um einen Pfad abzugleichen?
Gewöhnlich sollte ein Vergleich mit if (string1==string2) einfacher zu handhaben sein.
Sollte ein RegEx unerlässlich sein, sollte das Pattern manuell so einfach wie möglich definiert werden . Automatisch generierte Pattern sollte man nur verwenden, wenn deren Inhalt vorherseh-/kontrollierbar ist!