2017-05-29 5 views
0

Ich mache eine Programmierung Tippspiel, das alles enthalten muss, was es möglich ist, dass spezielle Zeichen beteiligt ist. Ich habe Probleme mit der Taste \ (Schlüsselcode 220). Ich will, dass sie (beim Drücken der Taste) zu einer Zeichenfolge hinzugefügt wird und dann in der Ausgabe angezeigt wird. Jedes Mal, wenn die Zeichenfolge geteilt wird, anstatt zur Ausgabe hinzugefügt zu werden. Gibt es einen Weg dies zu verhindern? hier ist mein Code:Hinzufügen von zu einer Zeichenfolge, wenn seine Taste gedrückt wird

var out = document.getElementById("output"); 
 
var string = ""; 
 
var shift = false 
 

 
document.onkeydown = function(e){ 
 
    //detect when the "shift" key is held 
 
    if(e.keyCode == 16) shift = true; 
 
    //just to show that this does work 
 
    if(e.keyCode == 65){ 
 
    if(shift){ 
 
     string += "A"; 
 
    }else{ 
 
     string += "a"; 
 
    } 
 
    } 
 
    //pressing the/key 
 
    if(e.keyCode == 220){ 
 
    if(shift){ 
 
     string += "|"; 
 
    }else{ 
 
     string += "\"; 
 
    } 
 
    } 
 
    print(); 
 
}; 
 

 
document.onkeyup = function(e){ 
 
    if(e.keyCode == 16) shift = false; 
 
}; 
 
function print(){ 
 
    out.innerHTML = string; 
 
}
<!DOCTYPE html> 
 
<html> 
 
<body> 
 
<p id="output">press the \ or a key</p> 
 
</body> 
 
</html>

EDIT: mein Fehler ich meine die \ key whos keycode zu setzen war 220. Ich war das falsche Teil meines Codes suchen ab.

+0

Es gibt eine Syntax Fehler in Ihrem Code, wobei 'string + =" \ ";' nicht eine Zeichenkette darstellt, die das einzelne '\' Zeichen enthält, da das '\' tatsächlich das schließende Zitat verlässt. – Aaron

+0

@Aaron Ich versuche, das Zeichen in die Zeichenfolge (das ist, was alle Buchstaben und solche gehen, bevor sie angezeigt werden) auszugeben. Ich möchte den \ Schlüssel ausgeben, aber der Syntaxfehler _ist_ das Problem. Ich habe mich gefragt, ob es einen Weg gibt, um (in meinem Fall) das Zeichen \ ausgeben zu können und den Syntaxfehler zu beheben. Wenn es dann wäre, wäre das fantastisch! –

+0

Yup, entkommen Sie der Flucht Charakter, wie in Frank Wisniewski Antwort vorgeschlagen. Wenn Sie ein Zeichen mit "\" vorgeben, wird es entfernt, was bedeutet, dass es seine spezielle Bedeutung entfernt und stattdessen als Literalzeichen verwendet: Mit '" \ "' schließt das zweite Zitat nicht Ihre Zeichenfolge, sondern nur ein Anführungszeichen innerhalb Ihrer Zeichenfolge . Aber mit '" \\ "' ist es jetzt das '\ ', das entkoppelt ist, so dass es dem schließenden Zitat nicht mehr entkommt, sondern selbst als ein buchstäbliches' \ 'Zeichen verstanden wird. – Aaron

Antwort

2

Ich kann es nicht testen, da ich ein Deutsch Tastaturlayout ...

string += "\\";

i denke, es ist auch ein Weg, e.shiftKey zu überprüfen ..

+0

Der Code funktioniert! Vielen Dank! –

Verwandte Themen