Hallo Max.
for(var i=0; i<key.length; i++) {
text = text.replace(key[i], replaceStrings[i]);
}damit funktioniert es, allerdings nur EINMALIG. Wenn "string1" mehrmals im Text vorkommt, wird nur das erste Vorkommen ersetzt. Was kann ich da machen?
So zum Beispiel:
function js_str_replace(mix1, mix2, str) {
// Wenn die ersten beiden Argumente Arrays sind …
if (typeof(mix1) == 'object' && mix1.length &&
typeof(mix2) == 'object' && mix2.length) {
// … und beide gleich viele Elemente enthalten …
if (mix1.length == mix2.length) {
for (var i = 0; i < mix1.length; ++i) {
// … sämtliche Vorkommen global ersetzen …
str = str.replace(new RegExp(mix1[i], 'g'), mix2[i]);
}
// … und Resultat zurückgeben.
return str;
} else {
// Mit einer ungleichen Anzahl kann nicht gearbeitet werden.
return false;
}
}
// Ansonsten global ersetzen
return (str = str.replace(new RegExp(mix1, 'g'), mix2));
}
var from = ['string1', 'string2', 'string3'];
var to = ['ersatz1', 'ersatz2', 'ersatz3'];
alert(js_str_replace(from, to, 'string1 string3 string2, string3string2')); // ersatz1 ersatz3 ersatz2, ersatz3ersatz2
Einen schönen Mittwoch noch.
Gruß, Mathias
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]