A JavaScript error occurred in the main process?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Berufserfahrung – Entwickler mit Leib und Seele

Erzesel  26.09.2024, 10:25

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 (...==...)

DerLehrersinn 
Beitragsersteller
 26.09.2024, 08:25

Super!!!!!!! Vielen Dank!!!!!

Du benutzt einen Pfad innerhalb einer RegularExprssion, ohne Sonderzeichen zu maskieren .

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!