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, "ö"); // ersetze ö
findw = findw.replace(/%E4/g, "ä"); // ersetze ä
findw = findw.replace(/%FC/g, "ü"); // ersetze ü
findw = findw.replace(/%DF/g, "ß"); // ersetze ß
myMonitor.innerHTML += findw + "<br>";
};
//-->
</script>
</head>
<body>
<div id="monitor"> </div>
</body>
</html>
viele Grüße
Axel