Struppi: Verwendung eines Arrays?

Beitrag lesen

Aber Achtung: Der String wird dann als Regulärer Ausdruck ausgewertet. Das heißt, dass gewisse Buchstaben eine besondere Bedeutung haben. Z.B. bedeutet ».« nicht einfach Punkt, sondern »ein beliebiges Zeichen«.

In dem Fall müsstest du ein \ vor den . stellen, um es unschädlich zu machen und seine ursprüngliche Bedeutung zu bewahren. Dem \ muss man wiederum \voranstellen, damit es nicht als andere Escape-Sequenz angesehen wird:

Ja leider. Perl hat dafür den \Q Operator, den JS nicht kennt. Sinnvoll ist darüber hinaus in dem Fall auch nach der Wortgrenze zu suchen, sonst ersetzt man u.U. mitten in einem Wort.

Das sähe dann z.b. so aus:

var str = 'Hier z.B. nach "sgdh" gesucht und durch "Sehr geehrte Damen und Herren, " ersetzt. Aber nicht: in sgdhxgx';  
var rep = {  
sgdh: 'Sehr geehrte Damen und Herren, '  
};  
  
for(var abk in rep) {  
 var reg = new RegExp('\\b' + abk +'\\b' , 'ig');  
str = str.replace(reg, rep[abk]);  
}  
alert(str);  

Struppi.