Axel Richter: 4 replace zusammenfassen

Beitrag lesen

Hallo,

Ich habe einen Regulären Ausdruck um übergebenen Unicode zu ersetzen. Besser gesagt ich habe 4 davon...
var findw  = findw.replace(/%F6/, "ö"); // ersetze ö
var findw  = findw.replace(/%E4/, "ä"); // ersetze ä
var findw  = findw.replace(/%FC/, "ü"); // ersetze ü
var findw  = findw.replace(/%DF/, "ß"); // ersetze ß

Warum deklarierst Du die Variable findw immer wieder neu? Das var gehört nur vor die erste Deklaration.

gibt es nun eine Möglichkeit alle 4 in einem Zusammenzufassen.

Soweit ich weiß, nein.

Ich hoffe nämlich dass sich dann damit mein IE-Problem beheben lässt; im IE wird nur der erste replace ausgeführt - in Opera und Firefox funktioniert es bei allen 4en.

Hm, kann ich nicht bestätigen. Oder meinst Du, dass immer nur das erste %F6, %E4, %FC, %DF ersetzt wird? Das liegt aber daran, dass Dein regulärer Ausdruck mehr nicht abdeckt. Siehe http://de.selfhtml.org/javascript/objekte/regexp.htm#allgemeines - Syntax regulärer Ausdrücke -
/.../g /aus/g findet "aus" so oft wie es in dem gesamten zu durchsuchenden Bereich vorkommt. Die Fundstellen werden intern in einem Array gespeichert

Beispiel:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
        "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<title>Titel</title>  
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
<script type="text/javascript">  
<!--  
window.onload = function() {  
  
 var myMonitor = document.getElementById("monitor");  
  
 var findw = "D%F6s (da%DF) %FCst ein T%E4st m%FCt Uml%E4uten."  
 myMonitor.innerHTML = findw + "<br>";  
  
 var findw  = findw.replace(/%F6/g, "&#246;"); // ersetze ö  
 findw  = findw.replace(/%E4/g, "&#228;"); // ersetze ä  
 findw  = findw.replace(/%FC/g, "&#252;"); // ersetze ü  
 findw  = findw.replace(/%DF/g, "&#223;"); // ersetze ß  
  
 myMonitor.innerHTML += findw + "<br>";  
  
};  
//-->  
</script>  
</head>  
<body>  
<div id="monitor">&nbsp;</div>  
</body>  
</html>  

viele Grüße

Axel