FB18 - Das Forum für Informatik

fb18.de / Forentechnik / Neuigkeiten

Das Smily Problem bei Quelltexten

Das Smily Problem bei Quelltexten 2003-03-08 16:35
Popcorn
Ein erster Ansatz für das leidige Problem. Wer den Text in das Textfeld eingegeben oder reinkopiert hat, der kann nun unten einmal auf den Link "[0] bis [9] in Text wandeln" klicken. Damit werden auf jeden Fall [0] bis [9] (wie hier gerade demonstriert) weiterhin so wie geschrieben angezeigt. So ganz effektiv ist das Ding noch nicht am Laufen, es fehlen halt noch 10 bis 99 und wer ein zweites Mal draufdrückt, bekommt am Ende Mansch. Aber zum Einen war es ja meistens das Problem mit [0] und [1] und zum Anderen werkel ich ja dran…

P. S. Derzeit nur im Newtopic, gleich setzte ich es auch noch nach Modify und Newposting.

Re: Das Smily Problem bei Quelltexten 2003-03-08 19:28
Popcorn
BTW: Vielleicht möchte ja wer von den hellen Köpfen das erledigen. Es gibt sicher genug hier, die das besser und schneller hinbekommen. Bisher sieht das so aus:

function CodeCheck() { var message = document.post.body.value; var letters = message.length; var search = ""; var temp = ""; var cutpoint = 0; var i = 0; for(; i < letters-1; i++) { search = message.substring(i, i+3); for(x = 0; x < 10; x++) { if(search == '['+x+']') { temp += message.substring(cutpoint, i) + '\['+x+']'; cutpoint = i+3; } } } message = temp + message.substring(cutpoint, i+3); document.post.body.value = message; return; }
Das nimmt wie gesagt erst mal nur 0 bis 9 mit. Vielleicht hat ja wer eine Idee, wie das hübscher aussehen könnte und wie es effektiv auch für 10 bis 99 angewandt werden kann. Dabei gilt [ x ] wird als Smily angezeigt \ [ x ] so wie es sein soll (ohne Leerzeichen natürlich).


Re: Das Smily Problem bei Quelltexten 2003-03-08 23:48
MoKrates
Lass uns doch mal schauen (dabei kann ich gar kein JavaSkript :) )

function CodeCheck() { var message = document.post.body.value; //var letters = message.length; // hier EDIT var search = ""; var temp = ""; var temp2 = ""; // Hier Edit var cutpoint = 0; //var i = 0; // Hier EDIT for(i=0; i < message.length-1; i++) { // Hier EDIT search = message.substring(i, i+3); for(x = 0; x < 10; x++) { if(search == '['+x+']' && (i==0 || message[i-1] != '\\')) { // hier EDIT! temp += message.substring(cutpoint, i) + '\['+x+']'; cutpoint = i+3; } } temp = temp + message.substring(cutpoint, message.length); // dies eingefuegt fuer 4er for(i=0; i < temp.length-4; i++) { search = message.substring(i, i+4); for(x = 10; x < 100; x++) { if(search == '['+x+']' && (i==0 ||message[i-1] != '\\')) { // hier EDIT! temp2 += message.substring(cutpoint, i) + '\['+x+']'; cutpoint = i+4; } } } temp2 = temp2 + message.substring(cutpoint, temp.length); document.post.body.value = temp2; return; } Hm... Da klappt bestimmt nicht... MoKrates

Re: Das Smily Problem bei Quelltexten 2003-03-08 23:59
MoKrates
Ansonsten waer es einfach, einfach irgendwo darueber zu informieren, dass man die Klammern mit einfachem Quoting kricht. :)

MoKrates

Re: Das Smily Problem bei Quelltexten 2003-03-09 11:28
Popcorn
Hm… Da klappt bestimmt nicht…
Es sieht auf jeden Fall bunt aus.

Hab aber auch was Neues und so lange jetzt keiner ein Array baut, was einen Inhalt größer als 9999999 hat oder dummerweise etwas wie [eine Ziffer und ein bis sechs Buchstaben] verwendet, klappt das hier schön:

Edit²: Noch mal Müll rausgenommen.

<SCRIPT LANGUAGE="JavaScript"> <!-- function x() { var message = document.post.body.value ; var letters = message.length; var temp = ""; var cutpoint = 0; for(i=0; i < letters-1; i++) { if(message.charAt(i) == "[") { // [] Einheiten finden. if(message.charAt(i-1) != "\\") { // Prüfe ob nicht bereits backlash gesetzt wurde. var x=0; var number = false; while(!number && x < 10) { // Prüfe ob es sich um eine Zahl handelt if(message.charAt(i+1) == x) number = true; x++; } if (number) { // Füge backslash ein for(y=1; y<8; y++) { // Suche nach Ende der Einheit if(message.charAt(i+y) == "]") { temp += message.substring(cutpoint, i) + '\[' + message.substring(i+1,i+y)+ ']'; cutpoint = i+y+1; i=i+y-1; break; } } } } } } message = temp + message.substring(cutpoint, i+3); document.post.body.value = message; return; } // End --> </SCRIPT>