2009-09-09 22 views

回答

-1

看到这个:

http://www.javascriptkit.com/javatutors/javascriptkey2.shtml

<script type="text/javascript"> 
function displayunicode(e){ 
var unicode=e.keyCode? e.keyCode : e.charCode 
if unicode >= 48 && unicode <= 57 { 
    alert('number') 
} 
else{ 
} 
    alert('nonnumber') 
} 
</script> 
<form> 
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" /> 
</form> 
+0

这不是确切的,你还必须插入他们的数字键盘号码。 http://www.cambiaresearch.com/articles/15/javascript-key-codes – Asterius 2016-03-18 15:02:47

+0

这是不正确的。它不处理数字键盘键 – 2017-03-21 02:10:35

1

我用下面的函数来检查,如果给定的字符串是数字或不

// Validate Numeric inputs 
function isNumber(o) { 
    return o == '' || !isNaN(o - 0); 
} 

假设上的keyup或keydown事件的关键代码在键代码变量:

var keyCode = e.keyCode || e.which; 
if (keyCode >= 96 && keyCode <= 105) { 
     // Numpad keys 
     keyCode -= 48; 
} 
console.log(isNumber(String.fromCharCode(keyCode))); 
0

使用event.key获取实际值。要检查是否整数,只要使用isFinite

input.addEventListener("keydown", function(event) { 
    const isNumber = isFinite(event.key); 
}); 

更简单的HTML的解决办法是使用number类型的输入。它仅限于数字(种类)。

<input type="number"> 

无论哪种方式,你应该清理所有的用户输入:

string.replace(/[^0-9]/g,''); 
0

只允许0-9,其他字母将被吞噬。

$('#id').keypress(function (e) { 
      var validkeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; 
      if (validkeys.indexOf(e.key) < 0) 
       return false; 
     }); 
相关问题