Übersetzer - wie?

Wie würde ich denn leerzeichen erlauben bzw. von 97 bis welche nummer schliesse ich das Leerzeichen ein?

____________________________
Original geschrieben von crono
Das Leerzeichen hat den Wert 32. Ich hab dir die angepasste Version beigefügt. Mich wunderst grad das es in JS keine isSpace() Methode gibt... war ziemlich sicher das es die gibt - hab sie aber nicht gefunden :(

ciao
Danke!!
Hast mir ziemlich weitergeholfen :)
 
Zuletzt bearbeitet:
Original geschrieben von crono
Ok, wenn selbst du probleme hast es auf anhieb zu verstehen dann sollte ich es vielleicht doch genauer erklären :).

Naja, ich bin ja nun wirklich nicht so der CRack wie Du in JavaScript...

Deine Schleife hatte ich schon entdeckt, aber mit denen stehe ich auf Kriegsfuss ( weiss nicht wieso ).

Mit "CharCodeAt", soweit war ich auch schon, aber weiter wusste ich nicht...

Muss ich mal bei Dir in Lehre gehen..!
 
Original geschrieben von do it
Wie würde ich denn leerzeichen erlauben bzw. von 97 bis welche nummer schliesse ich das Leerzeichen ein?

Das Leerzeichen hat den Wert 32. Ich hab dir die angepasste Version beigefügt. Mich wunderst grad das es in JS keine isSpace() Methode gibt... war ziemlich sicher das es die gibt - hab sie aber nicht gefunden :(

ciao
 

Anhänge

  • beispiel2.txt
    1,6 KB · Aufrufe: 31
Kann man auch machen, dass jeder zweite Buchstabe weggelassen wird?
Also wenn man "Test" eingibt, würde dort TmxacTm oder yESnty (von TymExSanctTym) stehen?
 
Ja natürlich, das ganz würde dann so aussehen

Code:
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function translate(){
    var runen = new Array( "An","Bet","Corp","Des","Ex","Flam","Grav","Hur","In",
    "Jux","Kal","Lor","Mani","Nox","Ort","Por","Quas","Rel","Sanct","Tym","Uus",
    "Vas","Wis","Xen","Ylem","Zan");

    var text = document.Testformular.Eingabe.value;
    var x = text.length;
    var i = 0;
    var output ="";
    var r_char;
    var popup;
    var sec=0;
    
    text = document.Testformular.Eingabe.value.toLowerCase();
    
    for(i;i<x;i++){
        if((text.charCodeAt(i)<97)||(text.charCodeAt(i)>122)){
            alert("Bitte keine Zahlen oder Sonderzeichen eingeben!");
            sec=1;
            document.Testformular.Eingabe.value = "";
            break;   
        }
        else{
            r_char = text.charCodeAt(i)-97;
            output += runen[r_char];
        }
    }
     
    var temp = '';
    //jeden zweiten Buchstaben rauslassen
    for(j=0; j<output.length; j++){
      if(j%2==0){
        temp += output[j]; 
      }
    }
    output = temp;
    
    if(sec==0)
    {
        popup = open("", "", "width=300,height=100,status=no,toolbar=no,menubar=no");
        with(popup.document){
            open();
            write("<html><head><title></title></head><body>");
            write(text+" in Runennamen ="+output);
            write("</body></html>");
            close();
        }
    }  
}

//-->
</script>
</head>
<body>
<form name="Testformular">
Namen eingeben: <input name="Eingabe" type="text">
<input type="button" value="Übersetzen" onClick="translate()">
</form>
</body>
</html>

wobei nur der Teil neu ist:
PHP:
  var temp = '';
  //jeden zweiten Buchstaben rauslassen
  for(j=0; j<output.length; j++){
    if(j%2==0){
      temp += output[j]; 
    }
  }
  output = temp;

bye
 
Kommt bei mir auch, das 'undefined'...Fehlermeldung fehlt:) ...IE5.5

das liegt an
Code:
if(j%2==0){
        temp += output[j];
      }
output ist kein Array... mit :
Code:
if(j%2==0){
        temp += output.charAt(j);
      }
sollte es laufen :)
 
:rolleyes: bei Mozzi kann man über den Index auf die einzelnen Chars des Strings zugreifen. Hatte es nicht im IE getested - habe aber in Erinnerung das es im IE auch mal ging (ältere Vesion) - naja - dann ist es schon klar...

bye
 

Neue Beiträge

Zurück