Günter Marchewka: Backslash aus Textarea in Arrayvariable retten

Beitrag lesen

Guten Morgen,
ich habe ein Formular, in dem die Benutzer beliebig Text eingeben können sollen. Es kann neben reinem Text auch HTML-Code eingegeben werden. Dabei traten schon mal Probleme bei den größer und kleiner Zeichen auf, die ich jedoch mit dem folgenden Code lösen konnte. Jetzt ist jedoch jemand auf die Idee gekommen, einen Backslash einzugeben. Dieser wird als Ersetzungszeichen interpretiert und bei der Verarbeitung der eingegebenen Daten verschwindet er.
Nun habe ich versucht, eine Ersetzung wie bei den größer und kleiner Zeichen zu erreichen, es will jedoch nicht klappen.
Hier der Code:
function cEintrag()
{ alert('bin in cEintrag');
  for (i=0;i< FEfelder.length;i++)
     {
      if (i == FEfelder.length) break;
      xl = "<";
      xlx=eval("/"+xl+"/g");
      xg = ">";
      xgx = eval("/"+xg+"/g");
      xb = "\"; // doppelt, um einmal zu maskieren
alert('Bin vor eval für xbx');
      xbx = eval("/"+xb+"/g");
alert('bin hinter eval für xbx');

document.all[FEfelder[i].feld].value = document.all[FEfelder[i].feld].value.replace(xlx,"<");

document.all[FEfelder[i].feld].value = document.all[FEfelder[i].feld].value.replace(xgx,">");

document.all[FEfelder[i].feld].value = document.all[FEfelder[i].feld].value.replace(xbx,"&#92;");

FEvar[FEfelder[i].nr][FEfelder[i].name] = document.all[FEfelder[i].feld].value;
     }

writeEintrag();
}
Dieser erzeugt in der mit alerts eingekreisten Anweisung im IE5.0 die Fehlermeldung: "/" erwartet.
Weis jemand, wie ich die Ersetzung des Backslash erreichen kann?
Ich habe schon herumprobiert und auch in der Anweisung xb = "\"; drei Backslashe (?) untergebracht. Da die Fehlermeldung darauf hin weist, das bei der Ausführung der eval-Anweisung ein Backslash fehlt. Das führt jedoch dazu, daß alle größer und kleiner Zeichen dauerhaft um einen Backslash erweitert werden. Stelle ich in der Reihenfolge der Ersetzungsanweisungen dann die letzte an die erste Stelle werden alle Backslashe durch "nichts" ersetzt.

Danke!
Günter