Umlaute ersetzen
Teh Nethacker
- javascript
Hallo,
Ich habe aus "Langeweile" eine Funktion geschrieben, die mir die Umlaute ersetzen soll. Leider funktioniert diese nicht, da sie bei dem Satz "Ändere und übe die Wörter" nur "Ändere und übe die Wörter" ausgibt.
Die Funktion:
<script type="text/javascript">
<!--
function rep_u()
{
if(document.workspace.umlaute.checked == true)
{
var text = document.workspace.work.value;
document.workspace.work.value = text.replace(/Ä/g, "Ä");
document.workspace.work.value = text.replace(/ä/g, "ä");
document.workspace.work.value = text.replace(/Ö/g, "Ö");
document.workspace.work.value = text.replace(/ö/g, "ö");
document.workspace.work.value = text.replace(/Ü/g, "Ü");
document.workspace.work.value = text.replace(/ü/g, "ü");
//document.workspace.work.value = text.replace(/ß/g, "ß");
//document.workspace.work.value = text.replace(/é/g, "é");
}
}
//-->
</script>
Woran kann das liegen?
mfg
Woran kann das liegen?
Daran, dass du immer au deinem kopierten Original heraus arbeitest und darauf hin die Ergebnisvariable von vorherigen Ersetzungen überschreibst.
mfg Beat
Es dient alles einem bestimmten Zweck für einen Konverter.. Ich kann gerne auf solche unnötigen Kommentare verzichten, zumal nur 1-2 gute Antworten zutreffen.
Liebe(r) Teh,
Ich kann gerne auf solche unnötigen Kommentare verzichten
da hast Du ihn jetzt aber gründlich missverstanden! Beat sprach nicht davon, wie Du mit Quelltexten Deiner Scripte umgehst, sondern er sprach davon, wie Du im obigen Code-Beispiel programmiertechnisch mit Variablenwerten verfährst!
Liebe Grüße,
Felix Riesterer.
Mahlzeit Teh Nethacker,
Ich kann gerne auf solche unnötigen Kommentare verzichten,
Was für ein Problem hast Du denn? Beats Kommentar war mitnichten unnötig, sondern hat präzise zusammengefasst die Ursache für Dein "Problem" dargestellt.
Wenn Du das nicht verstanden hast, solltest Du nachfragen - rumpöbeln hingegeben hilft Dir nicht weiter. Und Deine Leser schreckt es eher ab.
MfG,
EKKi
Hi,
Ich habe aus "Langeweile" eine Funktion geschrieben, die mir die Umlaute ersetzen soll. Leider funktioniert diese nicht, da sie bei dem Satz "Ändere und übe die Wörter" nur "Ändere und übe die Wörter" ausgibt.
Das liegt daran, dass ü das letzte Zeichen ist, welches du ersetzt.
var text = document.workspace.work.value;
document.workspace.work.value = text.replace(/Ä/g, "Ä");
document.workspace.work.value = text.replace(/ä/g, "ä");
document.workspace.work.value = text.replace(/Ö/g, "Ö");
document.workspace.work.value = text.replace(/ö/g, "ö");
document.workspace.work.value = text.replace(/Ü/g, "Ü");
document.workspace.work.value = text.replace(/ü/g, "ü");
//document.workspace.work.value = text.replace(/ß/g, "ß");
//document.workspace.work.value = text.replace(/é/g, "é");
Du ersetzt hier jeweils ein Zeichen des Inhaltes, der in text vorliegt, und speicherst das *Ergebnis* dieser Ersetzung in document.workspace.work.value - und dann machst du im nächsten Schritt mit dem weiterhin unveränderten Inhalt von text weiter.
MfG ChrisB
Lieber Teh,
die Antwort auf Deine Frage hat man Dir ja schon gegeben. Daher hier eine visuell verstörende Version dessen, was Du vorhast:
<script type="text/javascript">
~~~javascript
//<![CDATA[
function rep_u() {
if(document.workspace.umlaute.checked == true) {
var t = document.workspace.work;
t.value = t.value.replace(
/Ä/g, "Ä"
).replace(
/ä/g, "ä"
).replace(
/Ö/g, "Ö"
).replace(
/ö/g, "ö"
).replace(
/Ü/g, "Ü"
).replace(
/ü/g, "ü"
).replace(
/ß/g, "ß"
).replace(
/é/g, "é"
);
}
}
//]]>
Zugegeben, schön ist anders. Aber sieht doch echt verwirrend aus, oder?
Eine andere Methode:
`<script type="text/javascript">`{:.language-html}~~~javascript
//<![CDATA[
function rep_u() {
if(document.workspace.umlaute.checked == true) {
var t = document.workspace.work;
var transformations = [
["Ä", "Ä"],
["ä", "ä"],
["Ö", "Ö"],
["ö", "ö"],
["Ü", "Ü"],
["ü", "ü"],
["ß", "ß"],
["é", "é"]
];
for (i = 0; i < transformations.length; i++) {
t.value = t.value.replace(
new RegExp(transformations[i][0], "g"),
transformations[i][1]
);
}
}
}
//]]>
~~~`</script>`{:.language-html}
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
@@Teh Nethacker:
Ich habe aus "Langeweile" eine Funktion geschrieben, die mir die Umlaute ersetzen soll.
Wenn du Langeweile hast, warum programmierst du dann nicht etwas Sinnvolles? Zeichen durch Entityrefenzen zu ersetzen ist nicht sinnvoll.
Live long and prosper,
Gunnar
Wenn du Langeweile hast, warum programmierst du dann nicht etwas Sinnvolles? Zeichen durch Entityrefenzen zu ersetzen ist nicht sinnvoll.
Na warte, bis seine langeweile bis zur Umkehrfunktion fortschreitet...
Alles hat zwei Seiten.
mfg Beat
@@Beat:
Na warte, bis seine langeweile bis zur Umkehrfunktion fortschreitet...
*G*
Alles hat zwei Seiten.
Wobei sich die Sinnhaftigkeit, die in JavaScript zu tun, immer noch nicht erschließt. Wenn der Quelltext erst einmal im Browser ist, ist es völlig egal, ob 'ä' oder 'ä' drinsteht.
Live long and prosper,
Gunnar