Ersetz-script
Micha
- javascript
0 D.R.0 steckl0 tr// fuer javascript
seth_not@home0 Micha0 JürgenB0 seth_not@home0 MudGuard
Hallo,
Ich würde gern ein scipt machen, man gibt in ein Textfeld etwas ein, und das script soll dann alles zu anderen zeichen machen, also nicht wie z.B. bei google translation sondern jeder einelne Buchstabe gegen ein oder 32 andere Zeichen...
Jemand ne Idee wie man das machen könnte?
Hallo,
Ich würde gern ein scipt machen, man gibt in ein Textfeld etwas ein, und das script soll dann alles zu anderen zeichen machen, also nicht wie z.B. bei google translation sondern jeder einelne Buchstabe gegen ein oder 32 andere Zeichen...
Jemand ne Idee wie man das machen könnte?
http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=replace()
mfg. Daniel
Hi,
Ich würde gern ein scipt machen, man gibt in ein Textfeld etwas ein, und das script soll dann alles zu anderen zeichen machen, also nicht wie z.B. bei google translation sondern jeder einelne Buchstabe gegen ein oder 32 andere Zeichen...
Jemand ne Idee wie man das machen könnte?
Ich weiß nicht, ob es die einfachste lösung ist, aber ich würde es so machen:
Hoffe ich habe mich einigermaßen verständlich ausgedrückt. Wenn nicht einfach nochmal nachfragen.
mfG,
steckl
gudn tach!
Ich würde gern ein scipt machen, man gibt in ein Textfeld etwas ein, und das script soll dann alles zu anderen zeichen machen, also nicht wie z.B. bei google translation sondern jeder einelne Buchstabe gegen ein oder 32 andere Zeichen...
eine moeglichkeit waere sowas:
trans = new Object();
trans["a"] = "x"; // a soll durch x ersetzt werden usw.
trans["b"] = "y";
trans["c"] = "z";
"aabcdbac".replace(/./gs, function(c){
return trans[c] ? trans[c] : c;
});
das sollte alle zeichen ersetzen, fuer die eine transliterationsvorschrift definiert wurde.
mein javascript ist allerdings etwas eingerostet. ich weiss nicht, ob der code "sauber" ist.
erst hatte ich es mit
replace(/(.)/g, trans["$1"]);
versucht, aber leider wurde hier $1 anscheinend nicht aufgeloest oder so.
ah, soeben habe ich steckls posting gesehen. dazu hilft dir vielleicht der code von diesem rot13-codierer weiter
prost
seth
trans = new Object();
trans["a"] = "x"; // a soll durch x ersetzt werden usw.
trans["b"] = "y";
trans["c"] = "z";
"aabcdbac".replace(/./gs, function(c){
return trans[c] ? trans[c] : c;
});
Das gefällt mir schon ganz gut, ich habe es mal versucht...Allerdings hat es nicht so ganz geklappt...
kann mir jemand sagen was hieran falsch ist? Danke
[CODE lang=html]
<html><head>
<script type="text/javascript">
function Konvert()
trans = new Object();
trans["a"] = "4";
trans["b"] = "8";
trans["c"] = "|";
trans["d"] = "1st";
trans["e"] = "3";
trans["f"] = "2nd";
trans["g"] = "6";
trans["h"] = "|-|";
trans["i"] = "1";
trans["j"] = "3rd";
trans["k"] = "|<";
trans["l"] = "|_";
trans["m"] = "|/|";
trans["n"] = "||";
trans["o"] = "0";
trans["p"] = "4th";
trans["q"] = "5th";
trans["r"] = "|2";
trans["s"] = "5";
trans["t"] = "7";
trans["u"] = "|_|";
trans["v"] = "/";
trans["w"] = "//";
trans["x"] = "><";
trans["y"] = "9";
trans["z"] = "2";
"aabcdbac".replace(/./gs, function(c){
return trans[c] ? trans[c] : c;
});
</script></head><body>
<form>
<textarea name="Text" rows=10 cols=80 wrap=soft>Tastatur oder Zwischenablage</textarea><br>
<input type=button value="|<0||/3|27!" onClick="Konvert(this)">
</form>
</form></div></body></html>
[/CODE]
Hallo Micha,
Das gefällt mir schon ganz gut, ich habe es mal versucht...Allerdings hat es nicht so ganz geklappt...
kann mir jemand sagen was hieran falsch ist? Danke
was meinst Du mit "hat es nicht so ganz geklappt"?
function Konvert()
Funktion ohne Übergabeparameter;
...
"aabcdbac".replace(/./gs, function(c){
return trans[c] ? trans[c] : c;
});
hier wird das Ersetzen auf den String "aabcdbac" angewendet. Willst Du das wirklich?
<textarea name="Text" rows=10 cols=80 wrap=soft>Tastatur oder Zwischenablage</textarea><br>
<input type=button value="|<0||/3|27!" onClick="Konvert(this)">
Hier rufst Du Konvert mit Übergabeparameter auf.
Wo steht denn der Text, der teilweise ersetzt werden soll? Übergib den Text an Konvert und in Konvert wende das Ersetzen auf diesen Text an:
Konvert(str)
...
str.replace ...
Gruß, Jürgen
gudn tach!
ich habe offensichtlich zuviel kenntnisse in javascript vorausgesetzt.
lies dir in selfhtml mal die grundlegenden kapitel zu javascript durch, auch im bezug auf objektorientierung, um zu verstehen, was der von mir gepostete code ueberhaupt bedeutet.
z.b. waere
"aabcdbac".replace(/./gs, ...);
in etwa das gleiche wie
string_variable = "aabcdbac";
string_variable.replace(/./gs, ...);
es ginge also noch ueberhaupt nicht ein etwaiger als parameter uebergebener text mit ein.
zudem hast du anscheinend missverstanden, was diese function innerhalb des replace-aufrufs macht. ist dir der ternaere operator bekannt? (falls nicht, frag mal google danach.) weiterhin hast du afais die ersetzung "falschherum" anwenden wollen. beachte meinen kommentar zum code in meinem ersten antwortposting.
du muesstest also die ersetzungen rumdrehen. ausserdem willst offensichtlich nicht nur jeweils genau ein zeichen durch genau ein anderes ersetzen. eben dies tut aber der von mir gepostete code.
und obendrein gibt es ein weiteres problem, was anhand der drei zeilen
trans["c"] = "|";
trans["r"] = "|2";
trans["z"] = "2";
deutlich wird. wenn irgendwo im text "|2" vorkommt, muss eine regel festgelegt werden, welche entscheidet, ob das nun zu "r" oder "cz" werden soll.
prost
seth
Hi,
<script type="text/javascript">
function Konvert()
trans = new Object();
Da fehlt die öffnende Klammer.
"aabcdbac".replace(/./gs, function(c){
return trans[c] ? trans[c] : c;
});
Hier wird für den String eine Ersetzung durchgeführt, das Ergebnis aber weggeschmissen.
Im Endeffekt wird also nur CPU-Zeit verbraten.
</script>
Die schließende Klammer für die Funktion Konvert fehlt auch.
cu,
Andreas