我从键盘上输入。
我是这样拍的:
if (48 <= key && key <= 57) {
var number = String.fromCharCode(key);
takeNumber(number);
}
4号的虚拟代码是52。但是+符号的虚拟数字也是52。如何区分+和4?
4
的Unicode键代码为52,+
的Unicode键码为187。要区分它们,请使用onkeypress
和onkeydown
事件。
注意:按下键盘键时会发生keydown
事件,随后会立即执行按键事件
在javascript
中,您可以通过以下方式区分这两者:
function uniCharCode(event) {
var char = event.which || event.keyCode;
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.keyCode;
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
<div id="demo"></div>
<div id="demo2"></div>
您可以使用"charCodeAt"或"String.fromCharCode"进行比较
'+'.charCodeAt() // 43
'4'.charCodeAt() // 52
String.fromCharCode(43) // '+'
String.fromCharCode(52) // 4