我在JavaScript表单域中使用onkeyup事件,并且我想检查按下的键是否是数字 - 即。 0 - 9,所以我可以对输入做些什么。Javascript:如何检查表单域上按下的键是否是数字(0 - 9)?
<input type="text" onkeyup="" />
我需要使用正则表达式吗?
感谢
我在JavaScript表单域中使用onkeyup事件,并且我想检查按下的键是否是数字 - 即。 0 - 9,所以我可以对输入做些什么。Javascript:如何检查表单域上按下的键是否是数字(0 - 9)?
<input type="text" onkeyup="" />
我需要使用正则表达式吗?
感谢
看到这个:
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>
这不是确切的,你还必须插入他们的数字键盘号码。 http://www.cambiaresearch.com/articles/15/javascript-key-codes – Asterius 2016-03-18 15:02:47
这是不正确的。它不处理数字键盘键 – 2017-03-21 02:10:35
我用下面的函数来检查,如果给定的字符串是数字或不
// 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)));
使用event.key
获取实际值。要检查是否整数,只要使用isFinite
input.addEventListener("keydown", function(event) {
const isNumber = isFinite(event.key);
});
更简单的HTML的解决办法是使用number
类型的输入。它仅限于数字(种类)。
<input type="number">
无论哪种方式,你应该清理所有的用户输入:
string.replace(/[^0-9]/g,'');
只允许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;
});
+1用户重定向到前面计算器条目。 – ChristopheD 2009-09-09 21:15:29
除了第三个是这篇文章.... – wows 2009-09-09 21:19:54
@wows - 呵呵,对不起,删除它。 – karim79 2009-09-09 21:26:38