检查用户输入的单个数值是否为数字

问题描述:

我知道如何检查字段的值是否为数字,并知道如何在关键帧上触发事件。我不知道该怎么做,检查用户的每个单独条目(密码)是否是一个数字。我对它的代表性不感兴趣。只要输入的值是0-9。检查用户输入的单个数值是否为数字

我做了一个基本的小提琴,如果你想填补空白。 (不推荐)

http://jsfiddle.net/dan_vitch/M7dFy/

$('#testInput').on('keyup', function (e) { 

    if (e.keyCode >= 48 && e.keyCode <=57) { 
     alert('That is a number'); 
    } 
    else{ 
     alert('That is not a number'); 
    } 
}); 

http://jsfiddle.net/M7dFy/2/

如果你不想使用event对象,你也可以这样做:

$('#testInput').on('keyup', function (e) { 

    var lastChar = $(this).val().charAt($(this).val().length-1); 

    if (!isNaN(parseInt(lastChar))) { 
     alert('That is a number'); 
    } 
    else{ 
     alert('That is not a number'); 
    } 
}); 

http://jsfiddle.net/M7dFy/7/

+0

不是由谁推荐?为什么? – JesseBuesking

怎么样 像这样? http://jsfiddle.net/nUBZk/

$('#testInput').on('keyup', function (e) { 

    if (Number(String.fromCharCode(e.which))) { 
     console.log('That is a number'); 
    } 
    else{ 
     console.log('That is not a number'); 
    } 
}); 

如果输入的字符是可转换成一个数字,它将返回true,否则为NaN。

您可以使用JavaScript函数isNaN()其返回true,如果不是非数字

所以给你的if语句是这样的:

$('#testInput').on('keyup', function (e) { 

    if (! isNaN($('#testInput').val())) { 
     alert('That is a number'); 
    } 
    else{ 
     alert('That is not a number'); 
    } 
}); 

希望这会为你工作:http://jsfiddle.net/Skooljester/M7dFy/5/


$('#testInput').on('keyup', function (e) { 
    var testNum = $.isNumeric($(this).val());  
    if (testNum == true) { 
     alert('That is a number'); 
    } 
    else{ 
     alert('That is not a number'); 
    } 
}); 

使用正则表达式检查字符串是否包含所有数字字符的解决方案:http://jsfiddle.net/M7dFy/13/

$('#testInput').keyup(function() { 

    var message = (this.value.match(/^[0-9]+$/)) ? "I'm a number!": "I am not a number"; 

    console.log(message); 

});