检查输入的数字是否是jquery中的数字

Omn*_*ent 64 javascript validation jquery

我有一个简单textbox的用户输入号码. 如果用户输入除数字之外的东西,
jQuery是否有一个isDigit允许我显示警告框的功能?

该字段也可以包含小数点.

kar*_*m79 86

我建议使用正则表达式:

var intRegex = /^\d+$/;
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;

var str = $('#myTextBox').val();
if(intRegex.test(str) || floatRegex.test(str)) {
   alert('I am a number');
   ...
}
Run Code Online (Sandbox Code Playgroud)

或者根据@Platinum Azure的建议使用单个正则表达式:

var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
var str = $('#myTextBox').val();
if(numberRegex.test(str)) {
   alert('I am a number');
   ...
}    
Run Code Online (Sandbox Code Playgroud)

  • 本来应该说明的.:-)你可以使用这样的正则表达式来表示所有(好的,多个)可能的数字:`/ ^ [+ - ]?\ dd +(\.\ d +)?([eE] [+ - ]?\\ ++)? $ /`如果你愿意,这将允许最后的小数,符号,甚至科学记数法.您可以根据需要删除各种部分(Google Perl风格的正则表达式,如果您需要帮助确定哪个部分是什么,但它应该相当直观). (4认同)

Plu*_*tor 71

忘记正则表达式.JavaScript有一个内置函数isNaN():

isNaN(123)           // false
isNaN(-1.23)         // false
isNaN(5-2)           // false
isNaN(0)             // false
isNaN("100")         // false
isNaN("Hello")       // true
isNaN("2005/12/12")  // true
Run Code Online (Sandbox Code Playgroud)

就像这样称呼它:

if (isNaN( $("#whatever").val() )) {
    // It isn't a number
} else {
    // It is a number
}
Run Code Online (Sandbox Code Playgroud)


小智 10

有一种更简单的方法可以检查变量是否为整数.你可以使用$ .isNumeric()函数.例如

$.isNumeric( 10 );     // true
Run Code Online (Sandbox Code Playgroud)

这将返回true,但如果你用一个字符串代替10,你将得到错误.

我希望这适合你.