molily: Schleife wird nur einmalig ausgeführt

Beitrag lesen

Hallo Enrico,

Ich kann meine Tipps nur wiederholen:

»Jedenfalls rate ich dir, dich genauer mit JavaScript zu beschäftigen. Z.B. in dem du ein gutes Buch durcharbeitest.«

»Code sollte bestenfalls in wiederverwendbaren Funktionen strukturiert werden, welche lokale anstatt globale Variablen verwenden. Du verwendest überall globale Variablen ohne »var«. Variablen sollten auch mit Kleinbuchstaben beginnen, das ist eine sinnvolle Konvention, um sie von Konstruktoren zu unterscheiden.«

»[…] entspricht new Array(…), allerdings ist es schneller, einfacher zu schreiben und eindeutig.«

Ich habe diese Tipps gegeben, weil ich denke, dass sie dir das Programmieren vereinfachen und sie helfen, Fehler zu vermeiden. Lokale Variablen z.B. sind enorm wichtig. Das ist eine JavaScript-Grundlage, die ein gutes Buch vermittelt.

Text = Text.str_replace(["Ä", "ä", "Ö", "ö", "Ü", "ü", "ß", "/"], ["Ae", "ae", "Oe", "oe", "Ue", "ue", "ss", ""]);

String-Objekte haben keine str_replace-Methode (das hört sich stark nach PHP an). Hast du den STring-Prototype entsprechend erweitert oder wo kommt diese Funktion her?

Es gibt in JavaScript die http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=replace-Methode. Diese erwartet als ersten Parameter einen String oder einen RegExp und als zweiten Parameter einen String.

Mehrere Ersetzungen lassen sich mit einer Schleife vornehmen. Man sollte auch nicht vergessen, den global-Flag (g) zu benutzen, sonst wird immer nur das erste Vorkommen ersetzt. Beispiel:

var search = ['a', 'b', 'c'];  
var replace = ['x', 'y', 'z'];  
var text = 'abc';  
for (var i = 0, l = ; i < l; i++) {  
  // Erzeuge neuen regulären Ausdruck  
  // Die Eingabe muss ggf. escaped werden  
  var regexp = new RegExp(search[i], 'g'); // g bedeutet: Ersetze alle Vorkommen  
  text = text.replace(regexp, replace[i]);  
}

Mathias