使用 JavaScript / jQuery 进行简单的数字验证

Posted

技术标签:

【中文标题】使用 JavaScript / jQuery 进行简单的数字验证【英文标题】:Simple number validation using JavaScript / jQuery 【发布时间】:2011-08-05 12:13:47 【问题描述】:

javascript / jQuery 中是否有任何简单的方法来检查变量是否为数字(最好没有插件)?我想提醒变量是否为数字。

提前致谢...:)

【问题讨论】:

***.com/questions/995183/… no.. 这不是上述问题的重复。我正在寻找没有插件的验证.. 接受它是否适合你 【参考方案1】:

我不推荐使用 isNaN 函数来检测数字,因为 Java Script 类型强制。

例如:

isNaN(""); // returns false (is number), a empty string == 0
isNaN(true); // returns false (is number), boolean true == 1
isNaN(false); // returns false (is number), boolean false == zero
isNaN(new Date); // returns false (is number)
isNaN(null); // returns false (is number), null == 0 !!

您还应该记住,isNaN 对于浮点数将返回 false(是数字)。

isNaN('1e1'); // is number
isNaN('1e-1'); // is number

我建议改用this 函数:

function isNumber(n) 
  return !isNaN(parseFloat(n)) && isFinite(n);

【讨论】:

那么你想说什么,我要修改@Pranay Rana 的答案吗?? 我只是想说使用 isNaN 函数不是检查字符串是否为 Java Script 中的数字的最“正确”方法。 还有其他简单的方法吗??你能给我做个小提琴吗?? :) 您不喜欢我在答案中建议使用的功能? 我喜欢..你能用小提琴演示一下吗??【参考方案2】:

Checking number using isNaN function

var my_string="This is a string";
if(isNaN(my_string))
document.write ("this is not a number ");
elsedocument.write ("this is a number ");

检查一个号码是否为非法号码:

<script type="text/javascript">


    document.write(isNaN(5-2)+ "<br />");
    document.write(isNaN(0)+ "<br />");
    document.write(isNaN("Hello")+ "<br />");
    document.write(isNaN("2005/12/12")+ "<br />");

</script>

上面代码的输出将是:

false
false
true
true 

【讨论】:

你好@Pranay Rana,你能用小提琴演示一下吗??【参考方案3】:

可以使用下面的代码。我不会完全依赖 isNaN() 。 isNaN 向我显示了不一致的结果(例如 - isNaN 不会检测空格。)。

//Event of data being keyed in to textbox with class="numericField".
$(".numericField").keyup(function() 
    // Get the non Numeric char that was enetered
    var nonNumericChars = $(this).val().replace(/[0-9]/g, '');                                  
    if(nonNumericChars.length > 0)
        alert("Non Numeric Data entered");
);

【讨论】:

好点,但是当用户删除输入中的所有字符时会发生什么? nonNumericChars.length 仍将为零,并且不会引发警报。您还在寻找其他与 tat 活动有关的事情吗? 啊,你是对的。我以为我发现你犯了一个错误,但事实证明我错了。我喜欢你的回答。 没关系。最好的部分是我们总是可以通过某种方式来修复所有错误。因此,如果您能找到错误,那就更好了,我会学到更多:)【参考方案4】:
function isDigit(num) 
    if (num.length>1)return false;
    var string="1234567890";
    if (string.indexOf(num)!=-1)return true;
    return false;

你需要遍历字符串并为每个字符调用这个函数

【讨论】:

【参考方案5】:

使用标准的 javascript 函数

isNaN('9')// this will return false
isNaN('a')// this will return true

【讨论】:

以上是关于使用 JavaScript / jQuery 进行简单的数字验证的主要内容,如果未能解决你的问题,请参考以下文章

javascript 使用jQuery进行SeedLogix表单控件

你可能不需要 jQuery!使用原生 JavaScript 进行开发

javascript 使用jQuery和CSS进行最小页面转换

如何在 jQuery / javascript 中使用 each() 进行迭代或循环

使用Javascript / jQuery进行Bootstrap 4表单验证

如何使用jquery或javascript对对象数组进行排序[重复]